首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中正確使用「NOT IN」與值清單?

如何在 MySQL 中正確使用「NOT IN」與值清單?

Barbara Streisand
發布: 2025-01-03 12:23:39
原創
750 人瀏覽過

How to Correctly Use

MySQL 中「NOT IN」值清單的正確格式

嘗試使用逗號分隔的值清單填入表格變數並將其用作「NOT IN」篩選器會出現常見的障礙。了解此操作的正確語法和限制至關重要。

問題

如原始查詢所示,將變數設定為逗號分隔的值清單:

SET @idcamposexcluidos='817,803,495';
登入後複製

隨後嘗試在「WHERE NOT IN」條件下使用它:

WHERE id_campo not in (@idcamposexcluidos)
登入後複製

通常會導致錯誤或意外的結果。

問題的關鍵在於 IN 子句對不同值的期望。然而,使用逗號分隔的字串作為參數會在 IN 子句中有效地編譯為單一字串,從而導致不正確的比較。

要克服這個問題,必須使用動態SQL 或使用MySQL 的FIND_IN_SET() 函數:

SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
登入後複製

雖然FIND_IN_SET() 提供了一種解決方法,但它也有其局限性。與使用索引不同,它需要對值列表進行線性搜索,從而導致效能下降。

以上是如何在 MySQL 中正確使用「NOT IN」與值清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板