![How to Use MySQL's](https://img.php.cn/upload/article/000/000/000/173571097548740.jpg)
“NOT IN”值列表的MySQL 語法
問題:
如何定義MyTSQL 變數在“NO🎜>
答案:使用值清單建構「NOT IN」子句時,必須避免將整個清單用作單一字串條款。 MySQL 將其編譯為統一字串,而「NOT IN」子句則需要單獨的值。考慮以下範例:WHERE id_campo NOT IN (@idcamposexcluidos)
登入後複製
編譯為:WHERE id_campo NOT IN ('817,803,495')
登入後複製
但是,正確的語法是:WHERE id_campo NOT IN ('817', '803', '495')
登入後複製
要克服這個問題,有兩種常見的方法:
-
動態SQL:
使用正確的語法建構查詢字串,確保在「NOT IN」子句中指定各個值。 -
FIND_IN_SET:
MySQL 提供了FIND_IN_SET() 函數,可以用作如下:
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
登入後複製
需要注意的是,使用FIND_IN_SET()在“id_campo”列上使用索引,可能會影響效能。 以上是如何將 MySQL 的「NOT IN」子句與值清單一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!