在MySQL中,使用WHERE IN語句可以同時匹配多個值,這是一種非常方便的篩選記錄的方法。WHERE IN語句后面的括號中可以包含多個值,這些值之間用逗號隔開。
SELECT * FROM table_name WHERE column_name IN (value1, value2, value3, ...);
上面的代碼片段中,column_name是要匹配的列名,括號中的值可以是數值、字符等數據類型。如果括號中有多個值,MySQL會遍歷每個值并逐個匹配,找到與其中任何一個值相匹配的記錄,就會將其返回。
需要注意的是,WHERE IN語句中所包含的值數量不應過多,因為MySQL會依次遍歷這些值,如果數據量過大,查詢效率會非常低下。常見的應用場景是針對一些數據類型相同但取值不同的情況下,比如只想查找某個部門的所有員工,或者某個城市的所有用戶等等。
SELECT * FROM people WHERE city IN ("Beijing", "Shanghai", "Guangzhou", "Shenzhen");
上述代碼片段中,查詢people表格中城市為北京、上海、廣州或深圳的所有人員記錄。此時,IN括號中的值數量不宜過多,否則查詢效率會受到明顯的下降。