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

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

Mary-Kate Olsen
發布: 2024-12-31 20:32:10
原創
892 人瀏覽過

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中文網其他相關文章!

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