查询的目的还在于找出可能出现的输入错误名称的重复项。例子:
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%'
,这只是不返回任何结果。
有人可以帮我弄清楚我做错了什么吗?
谢谢