ホームページ > データベース > mysql チュートリアル > IN 句で複数の列を使用してテーブルを効率的にクエリするにはどうすればよいですか?

IN 句で複数の列を使用してテーブルを効率的にクエリするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 02:12:10
オリジナル
384 人が閲覧しました

How Can I Efficiently Query a Table Using Multiple Columns in an IN Clause?

IN 句に複数の列があるテーブルのクエリ

SQL では、IN 句を使用すると、セットに基づいてデータをフィルタリングできます特定の列の値。ただし、複数の列で IN 句を使用するのは難しい場合があります。

この制限を克服するために、結合や EXISTS 句の使用など、さまざまな解決策が提案されています。ただし、これらの方法では、メイン テーブルと検索データの両方がデータベース内に存在する必要があります。

代替ソリューション

メイン テーブルと検索データの両方がデータベース内に存在する場合データベース内で使用できない場合は、代替ソリューションを使用できます:

  • 複合選択の構築クエリ:
    値のペアごとに個別の条件を指定する選択クエリを作成します。たとえば、
SELECT city FROM user WHERE (firstName='x' AND lastName='y') OR (firstName='a' AND lastName='b') OR ...
ログイン後にコピー
  • ステージング テーブルと結合を作成します。
    検索値をステージング テーブルにアップロードし、このテーブルをメイン テーブルと結合して、 data.

推奨ソリューション

推奨ソリューションは、特定のユースケースによって異なります。

  • 小規模なデータセットの場合、複雑な選択クエリのアプローチで十分な場合があります。
  • 大規模なデータセットの場合は、ステージング テーブルと結合方法が提供されます。パフォーマンスが向上しました。

複数の列を含む IN 句

ただし、IN 句を使用して複数の列をクエリするプロセスを簡素化する新しいソリューションが登場しました。

SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
ログイン後にコピー

このアプローチでは、IN 句のかっこ内に複数の列を指定できるため、より便利になります。値の組み合わせに基づいてデータを効率的にフィルタリングできます。

以上がIN 句で複数の列を使用してテーブルを効率的にクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート