MySQL IN () 多ID 記錄查詢問題
執行查詢時:
SELECT * FROM table WHERE id IN (1,2,3,4);
到根據多個ID 檢索資料時,您可能會遇到不傳回包含多個符合ID 的行的問題。此查詢轉換為:
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
僅擷取與集合中任何單一 ID 相符的行。
解決方案:使用 SET 資料類型
要解決此限制,您可以考慮將 id 列的資料類型變更為 SET。這允許您在單一列中儲存多個值。進行此變更後,您可以在查詢中使用 FIND_IN_SET 函數:
SELECT * FROM table WHERE FIND_IN_SET('1', id);
此查詢將傳回包含「1」作為 id 列中的值之一的所有行,無論任何其他值如何展示。這提供了一種更靈活的方式來匹配具有多個 ID 的記錄。
以上是為什麼 MySQL IN() 查詢不傳回具有多個符合 ID 的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!