INSTR を使用する :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
LIKEの使用:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
CONCATでLIKEを使用する:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
すべてのオプションで、大文字と小文字の区別を気にせずに一致することを確認するために、比較する前に列の値を大文字に変換することをお勧めします。
SELECT *
FROM (SELECT UPPER(a.column) 'ua'
TABLE a) a
JOIN (SELECT UPPER(b.column) 'ub'
TABLE b) b ON INSTR(b.ub, a.ua) > 0
最も効率的なのは、最終的にはEXPLAINプラン に依存します。 出力。
JOIN
句はWHERE
を書くのと同じです 条項。 JOIN
構文は、標準化されているため、ANSIJOINとも呼ばれます。非ANSI結合は次のようになります:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
非ANSILEFTJOINの例を気にするつもりはありません。 ANSI JOIN構文の利点は、テーブルを結合しているものを、WHERE
で実際に起こっていることから分離することです。 条項。