查询的目标还在于找到可能重名的错误名称。例如:向MySQL内部连接添加多个条件
International Group Inc.
必须找到为International, Group Inc
重复为了实现这个使用的下一个查询:
SELECT C.id,
C.name,
C.address,
C.city_id
FROM company C
INNER JOIN (SELECT name
FROM company
GROUP BY name
HAVING Count(id) > 1) D
ON Replace(Replace(C.name, '.', ''), ',', '') =
Replace(Replace(D.name, '.', ''), ',', '')
它工作得很好,结果就在40 secs
但添加像AND C.city_id='4'
等额外条件需要额外的分钟或更多;这仍然是可以接受的,但不是可取的
当我尝试添加另一个条件来找出名称中只包含特定字符串的公司的重复项时,出现真正的问题,使用此条件AND C.name LIKE '%International%'
,这只是不返回任何结果。
有人能帮我弄清楚我做错了什么吗?
感谢
不幸的是,我不认为你可以在这种情况下有效地使用索引 - 尽管1分钟+似乎非常缓慢。 – Strawberry 2013-05-07 12:26:48