為什麼 MySQL IN() 查詢不傳回具有多個符合 ID 的行?

Susan Sarandon
發布: 2024-11-04 16:38:02
原創
842 人瀏覽過

Why Doesn't MySQL IN() Query Return Rows with Multiple Matching IDs?

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

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