ホームページ >データベース >mysql チュートリアル >MySQL の WHERE IN() 句で複数の値を持つレコードを処理する方法は?

MySQL の WHERE IN() 句で複数の値を持つレコードを処理する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-06 18:07:03249ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。