」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 MySQL WHERE IN() 子句中處理具有多個值的記錄?

如何在 MySQL WHERE IN() 子句中處理具有多個值的記錄?

發佈於2024-12-23
瀏覽:443

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause?

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() 函數搜尋特定值:

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause? 
SELECT * FROM table WHERE FIND_IN_SET('1', id);

此查詢將傳回所有行將「1 ”作為“id”列中的值之一,而不管可能存在的任何其他值。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3