Pomocí INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Pomocí LIKE:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Pomocí LIKE a CONCAT:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
Mějte na paměti, že ve všech možnostech budete pravděpodobně chtít PŘED porovnáním nastavit hodnoty sloupců na velká písmena, abyste měli jistotu, že získáte shody bez ohledu na rozlišování malých a velkých písmen:
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
Nejúčinnější bude nakonec záviset na plánu EXPLAIN výstup.
JOIN
klauzule jsou totožné s psaním WHERE
doložky. JOIN
syntaxe se také označuje jako ANSI JOIN, protože byly standardizovány. JOINy bez ANSI vypadají takto:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Nebudu se obtěžovat příkladem non-ANSI LEFT JOIN. Výhodou syntaxe ANSI JOIN je, že odděluje to, co spojuje tabulky dohromady, od toho, co se skutečně děje v WHERE
doložka.