ホームページ > データベース > mysql チュートリアル > 部分一致の LIKE 条件を使用してテーブルを結合するにはどうすればよいですか?

部分一致の LIKE 条件を使用してテーブルを結合するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-31 17:59:00
オリジナル
1088 人が閲覧しました

How to Join Tables with a LIKE Condition for Partial Matches?

LIKE 条件によるテーブルの結合

複数のテーブルのデータをクエリする場合、多くの場合、特定の基準に基づいてテーブルを結合する必要があります。一般的な要件の 1 つは、あるテーブルの列に別のテーブルの列と正確または部分的に一致する値が含まれる一致する行を取得することです。このシナリオは、JOIN ステートメントと組み合わせて LIKE 演算子を使用することで対処できます。

INSTR の使用

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON INSTR(b.column, a.column) > 0;</code>
ログイン後にコピー

INSTR 関数は、b.column の値に a の値が含まれているかどうかを確認します。

LIKE の使用

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON b.column LIKE '%'+ a.column +'%'</code>
ログイン後にコピー

LIKE 演算子はパターン マッチを実行し、ワイルドカード (*) で任意の数の前後の文字を表すことができます。 。この場合、パターンは %a.column% であり、b.column の値内のどこかに a.column が含まれている場合に一致することが保証されます。

CONCAT での LIKE の使用

<code class="sql">SELECT *
FROM TABLE_A a
JOIN TABLE_B b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
ログイン後にコピー

次と同様前の例と同様に、この手法では CONCAT 関数を使用してパターンを動的に構築します。前の LIKE クエリと同じ結果が得られます。

大文字と小文字の区別

大文字と小文字を区別せずに比較できるようにするには、結合を実行する前に列の値を大文字に変換することをお勧めします。

<code class="sql">SELECT *
FROM (SELECT UPPER(a.column) AS upper_a
       FROM TABLE_A) a
JOIN (SELECT UPPER(b.column) AS upper_b
       FROM TABLE_B) b ON INSTR(upper_b, upper_a) > 0;</code>
ログイン後にコピー

効率に関する考慮事項

LIKE 条件を使用してテーブルを結合するための最も効率的な方法は、特定のデータベースとクエリ オプティマイザーの動作によって異なります。最適な実行パスを決定するには、EXPLAIN PLAN 機能を使用することをお勧めします。

以上が部分一致の LIKE 条件を使用してテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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