Using INSTR http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_instr:
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
使用喜欢:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
使用 LIKE 和 CONCAT:
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
最有效的最终取决于解释计划 http://dev.mysql.com/doc/refman/5.0/en/explain.html output.
JOIN
子句与写作相同WHERE
条款。这JOIN
语法也称为 ANSI JOIN,因为它们是标准化的。非 ANSI JOIN 如下所示:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
我不会费心使用非 ANSI LEFT JOIN 示例。 ANSI JOIN 语法的好处在于,它将表连接在一起的内容与实际发生的内容分开。WHERE
clause.