MySQL WHERE IN () 查詢未傳回預期結果
在MySQL 中,WHERE IN () 語句通常用於擷取基於在一組指定值上。但是,有時使用者會遇到結果中未傳回預期行的情況。
問題描述:
使用者有一個查詢,該查詢從「表」中選取所有行" 其中「id」列位於指定清單中的表:
<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>
使用者註意到,當一筆記錄具有多個「id」值(例如,同時為1 和3)時,不會傳回該記錄
理解問題:
WHERE IN () 語句將提供的值清單轉換為一系列OR 運算子:
<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>
這表示僅傳回「id」欄位與指定值之一完全匹配的行。資料結構。解決方案會帶來額外的複雜性,並且可能不適合所有場景。
以上是為什麼我的MySQL WHERE IN()查詢不回傳多值記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!