查詢的目標還在於找到可能重名的錯誤名稱。例如:向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