首頁 >資料庫 >mysql教程 >如何正確格式化 MySQL 變數以便在「NOT IN」子句中使用?

如何正確格式化 MySQL 變數以便在「NOT IN」子句中使用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-31 20:32:10900瀏覽

How to Correctly Format MySQL Variables for Use in a

「NOT IN」值清單的MySQL 變數格式

當嘗試使用「NOT IN」清單排除MySQL 查詢中的某些值時,指派一個將變數設定為排除值可能是一個方便的解決方案。但是,確保正確的變數格式至關重要。

如查詢中所述,您嘗試為變數「@idcamposexcluidos」分配不同的格式:

  • SET @idcamposexcluidos='817,803,495 ';
  • 設定@idcamposexcluidos='(817,803,495)';
  • SET @idcamposexcluidos=817,803,495;

都無法按預期工作。原因是「IN」子句需要單獨的值,而不是單一字串。因此,查詢:

WHERE id_campo not in (@idcamposexcluidos)

實際上變成:

WHERE id_campo not in ('817,803,495')

,這是不正確的。這些值應作為單獨的字串文字提供:

WHERE id_campo not in ('817','803','495')

要解決此問題,有兩個選項:

  1. 動態SQL: 建立查詢動態地使用排除值的串聯。
  2. MySQL FIND_IN_SET()功能: 使用FIND_IN_SET() 函數檢查該值是否存在於以逗號分隔的排除值清單中,如下所示:
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0

注意使用FIND_IN_SET()函數可能會影響索引的使用。

以上是如何正確格式化 MySQL 變數以便在「NOT IN」子句中使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn