ホームページ >データベース >mysql チュートリアル >LIKE を使用して SQL 結合で部分文字列一致を実行するにはどうすればよいですか?

LIKE を使用して SQL 結合で部分文字列一致を実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 21:29:291032ブラウズ

How to Perform Partial String Matching in SQL Joins using LIKE?

SQL での LIKE によるテーブルの結合

結合を実行するとき、一致条件で LIKE を使用した部分的な文字列一致が必要になるシナリオが発生する場合があります。オペレーター。これには、あるテーブルの列を別のテーブルの列と照合することが含まれます。この場合、対応する値の前後に文字を付けることができます。

これに対処するには、次のようないくつかのアプローチを使用できます。

INSTR の使用:

このメソッドは INSTR 関数を利用し、部分文字列が文字列内に存在するかどうかを確認します。 string.

<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>

LIKE の使用:

または、ワイルドカード % を含む LIKE 演算子を使用して、任意の数の文字と一致させることもできます。

<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>

LIKE を使用するCONCAT:

もう 1 つの手法では、CONCAT 関数を使用して % ワイルドカードと列の値を連結します。

<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>

大文字と小文字を区別しないマッチング:

すべての場合において、確実に行うために、比較する前に列の値を大文字に変換することをお勧めします。大文字と小文字を区別しないマッチング。

<code class="sql">SELECT *
FROM (SELECT UPPER(a.column) 'ua'
         FROM TABLE a) a
JOIN (SELECT UPPER(b.column) 'ub'
         FROM TABLE b) b ON INSTR(b.ub, a.ua) > 0</code>

方法の選択は、効率やデータベースの互換性などの要因によって異なります。 EXPLAIN プランの出力を参照して、最適なアプローチを決定します。 JOIN 構文は同等の WHERE 句と同等であることに注意してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。