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

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

Patricia Arquette
リリース: 2024-11-03 21:29:29
オリジナル
1043 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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