MySQL 中,in 后面可以跟很多個數據,也可以是一個數據集合。這樣的語法極大地方便了我們查詢數據的時候的操作。下面我們來具體了解如何使用 in 做數據篩選。
SELECT * FROM table_name WHERE id IN (1, 2, 3, ......)
SELECT * FROM table_name WHERE id IN (SELECT id FROM other_table WHERE ......)
SELECT * FROM table_name WHERE name IN ('tom', 'jerry', 'Lucy', ......)
上面三個 SQL 查詢語句都是使用了 in 關鍵字,在括號里面跟上了相應的數據集合。第一個示例是直接羅列出要匹配的 id 值,第二個示例是在其他表中查找 id 值后再引入,第三個示例則是給出了需要查詢的字符串集合。
在實際開發中,in 往往是和其他條件組合起來使用的,比如和 where 子句。如下面的示例:
SELECT * FROM users WHERE age >= 18 AND age<= 30 AND city IN ('北京', '上海', '廣州', '深圳') AND room_id IN (SELECT id FROM room WHERE type='A') ORDER BY name DESC;
上述 SQL 語句中,in 的參數部分是一個子查詢,這樣就可以在 in 子句中使用查詢語句得到的結果。查詢從 users 表中查找這樣的行:年齡在 18 到 30 歲之間的用戶,且城市在北京、上海、廣州、深圳其中之一,房間號在類型為 A 的房間 ID 集合中的用戶。查詢結果按 name 字段的值降序排序。
需要注意的是,如果在 in 子句中使用了太多的數據或者字符串,那么查詢的效率就會變得非常慢。因此我們需要優化查詢速度,例如分段查詢或者使用索引等措施,可能會對查詢速度產生顯著的影響。
上一篇jquery 條款
下一篇jquery 查詢子元素