MySQL IN () 運算子
查詢MySQL 資料庫時,WHERE IN () 運算子常用於根據特定條件擷取行列中的值。例如,以下查詢從「table」表中擷取「id」列與任意值(1、2、3、4) 相符的所有行:
SELECT * FROM table WHERE id IN (1,2,3,4);
但是,當一筆記錄具有多個「id」值(例如1 和3)時,就會出現問題。在這種情況下,查詢可能不會傳回該行。
解決方案
查詢轉換為以下OR 條件:
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
查詢轉換為以下OR 條件:
SELECT * FROM table WHERE id= '1' 或 id=' 2' or id='3' or id='4';SELECT * FROM table WHERE FIND_IN_SET('1', id);
要解決此問題,一種選擇是對「id」列使用 SET 資料類型。這允許您使用逗號分隔的字串儲存多個值。然後,您可以使用FIND_IN_SET() 函數搜尋特定值:
SELECT * FROM table WHERE FIND_IN_SET('1', id);
此查詢將傳回所有行將「1 ”作為“id”列中的值之一,而不管可能存在的任何其他值。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3