SQL の IN 句の複数の列のクエリ
特定の列の値のセットに基づいてデータベース テーブルをクエリする場合、 IN 句は便利なオプションです。ただし、複数の列を扱う場合、IN 句は使用できなくなります。
この課題を克服するには、通常のアプローチでは結合または EXISTS 句を使用します。ただし、これらの方法では、メイン テーブルと検索データの両方がデータベースに存在する必要があります。
列 (firstName、lastName、City) を含む User テーブルがあるユースケースを考えてみましょう。 (firstname, lastName) タプルのリストの都市を取得します。 2 つの解決策が考えられます:
解決策 1:
OR 条件を含む長い SELECT クエリを構築します:
SELECT city FROM user WHERE (firstName=x and lastName=y) or (firstName=a and lastName=b) or ...
解決策 2:
すべてを含むステージング テーブルを作成します。 firstName と lastName の値を取得し、User テーブルとステージング テーブルの間の結合を実行します。
代替解決策:
幸いなことに、 IN 句:
SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Sqlfiddleデモ:
[Sqlfiddle Demo](
このソリューションは、結合や EXISTS 句に頼ることなく、IN 句で複数の列をクエリする問題に効果的に対処します。これは、必要なデータを取得するための効率的かつ簡潔なアプローチを提供します。
以上がIN 句を使用して SQL で複数の列をクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。