Utilisation de INSTR :
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
Utiliser COMME :
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
Utiliser LIKE, avec CONCAT :
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
N'oubliez pas que dans toutes les options, vous souhaiterez probablement mettre les valeurs de colonne en majuscules AVANT de comparer pour vous assurer d'obtenir des correspondances sans vous soucier de la sensibilité à la casse :
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
Le plus efficace dépendra in fine du plan EXPLAIN sortie.
JOIN
les clauses sont identiques à écrire WHERE
clauses. Le JOIN
La syntaxe est également appelée ANSI JOIN car elle a été normalisée. Les JOIN non-ANSI ressemblent à :
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
Je ne vais pas m'embêter avec un exemple non-ANSI LEFT JOIN. L'avantage de la syntaxe ANSI JOIN est qu'elle sépare ce qui joint les tables de ce qui se passe réellement dans WHERE
clause.