[mysql] FIND_IN_SET

SQL 我們如果要查找某個欄位是否為某個值的時候,會用 WHERE 去下條件,例如:

SELECT * FROM `table` WHERE `ID`=2

當我們同時要找 `ID`=2, 5, 6, 7, ... 都可以的情況,用 WHERE 來寫就太醜了:

SELECT * FROM `table` WHERE `ID`=2 OR `ID`=5 OR `ID`=6 OR `ID`=7 OR ...

這時也許 ID 的值可以用 IN 取出,就是所謂的 SUBSELECT,也許能解決大部分的問題:

SELECT * FROM `table` WHERE `ID` IN (SELECT `ID` FROM `table2` WHERE ...)

可是總是有情況不美好的時候,也就是無法用 IN 取出我要的 ID,這時如果我們已經能事先知道要查詢哪些 ID,把他用 ',' 組成一個字串,再用  FIND_IN_SET()就能解決這個問題:

SELECT * FROM `table` WHERE  FIND_IN_SET(`ID`, '2,5,6,7,8,9,11,21,33,45')

留言

這個網誌中的熱門文章

名言-神劍闖江湖

[VPN] windows 7上用bat 自動連接PPTP VPN 並設定ROUTE

[php] 裁切圖片並縮小至指定大小