ホームページ >データベース >mysql チュートリアル >MySQL の WHERE IN() 句で複数の値を持つレコードを処理する方法は?
MySQL IN () 演算子
MySQL データベースにクエリを実行する場合、WHERE IN () 演算子は、特定のデータに基づいて行を取得するためによく使用されます。列内の値。たとえば、次のクエリは、「id」列が値 (1、2、3、4) のいずれかに一致するすべての行を「table」テーブルから取得します。
<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>
ただし、問題が発生します。レコードに 1 や 3 などの複数の「id」値がある場合。そのような場合、クエリはその行を返さないことがあります。
Solution
クエリは次のように変換します。
<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>
したがって、これらの条件のいずれかに一致する行のみが返されます。
これを解決するには、オプションの 1 つは、" に SET データ型を使用することです。 ID」列。これにより、カンマ区切りの文字列を使用して複数の値を保存できます。次に、FIND_IN_SET() 関数を使用して特定の値を検索できます。
<code class="sql">SELECT * FROM table WHERE FIND_IN_SET('1', id);</code>
このクエリは、「id」列の値の 1 つとして「1」を持つすべての行を返します。存在する可能性のある他の値。
以上がMySQL の WHERE IN() 句で複数の値を持つレコードを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。