「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > MySQL の WHERE IN() 句で複数の値を持つレコードを処理する方法

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

2024 年 12 月 23 日に公開
ブラウズ:537

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

MySQL IN () 演算子

MySQL データベースにクエリを実行する場合、WHERE IN () 演算子は、特定のデータに基づいて行を取得するためによく使用されます。列内の値。たとえば、次のクエリは、「id」列が値 (1、2、3、4) のいずれかに一致するすべての行を「table」テーブルから取得します:

SELECT * FROM table WHERE id IN (1,2,3,4);

ただし、レコードに 1 や 3 などの複数の「id」値がある場合、問題が発生します。そのような場合、クエリは

Solution

クエリは次の OR 条件に変換されます:

SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';

したがって、いずれかに一致する行のみが返されます。

これを解決するには、「id」列に SET データ型を使用することが 1 つのオプションです。これにより、カンマ区切りの文字列を使用して複数の値を保存できます。次に、FIND_IN_SET() 関数を使用して特定の値を検索できます。

SELECT * FROM table WHERE FIND_IN_SET('1', id);

このクエリはすべての行を返します。存在する可能性のある他の値に関係なく、「id」列の値の 1 つとして「1」を持つもの。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3