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

データベース クエリで複数の LIKE 条件を効率的に使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-08 14:26:41
オリジナル
603 人が閲覧しました

How Can I Efficiently Use Multiple LIKE Conditions in a Database Query?

OR を超えて: 複数の LIKE 条件に対するより効率的なアプローチ

データベース検索では、多くの場合、複数の LIKE 条件が含まれる複雑な条件が必要になります。 OR の使用は簡単ですが、広範なパターン マッチングでは非効率的で柔軟性に欠ける可能性があります。この記事では、一時テーブルを利用した優れた方法を紹介します。

一時テーブルの効率

複数の LIKE パターンを効果的に管理するには、これらのパターンを保存する一時テーブルを作成します。 たとえば、このテーブルには、関連するデータ型 (patterns など) を保持する 1 つの列 pattern を含む VARCHAR という名前を付けることができます。 パターンが「ABC%」、「XYZ%」、「PQR%」の場合、テーブルの作成と作成は次のようになります。

<code class="language-sql">CREATE TEMPORARY TABLE patterns (
  pattern VARCHAR(20)
);

INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');</code>
ログイン後にコピー

パターンマッチング最適化のための結合

一時テーブルにデータが設定されると、JOIN 操作によりパターンに基づいてメイン テーブル (tbl) が効率的にフィルタリングされます。 tbl 内の 任意の パターンに一致する patterns 内の行が結果に含まれます。 クエリは次のようになります:

<code class="language-sql">SELECT t.*
FROM tbl t
JOIN patterns p
ON (t.col LIKE p.pattern);</code>
ログイン後にコピー

DISTINCT による重複結果の処理

列が複数のパターンに一致し、行が重複する可能性がある場合は、DISTINCT キーワードを使用して一意の結果のみを返します。

<code class="language-sql">SELECT DISTINCT t.*
FROM tbl t
JOIN patterns p
ON (t.col LIKE p.pattern);</code>
ログイン後にコピー

概要: 優れたアプローチ

複数の LIKE 条件を管理するために一時テーブルを使用すると、よりクリーンで効率的で適応性のあるソリューションが提供されます。 このパターンの分離により、検索基準の管理と拡張が簡素化されます。 その結果、クエリのパフォーマンス、可読性、保守性が向上します。

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

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