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