hinzufügen Das Ziel der Abfrage ist es auch, mögliche Duplikate von Namen zu finden, die falsch eingegeben wurden. Beispiel:Mehrere Bedingungen zu MySQL Inner Join
International Group Inc.
muss als Duplikat International, Group Inc
Um diese einen verwendet, um die nächste Abfrage zu erreichen finden werden:
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, '.', ''), ',', '')
Es funktioniert sehr gut und das Ergebnis kam bei 40 secs
aber das Hinzufügen einer Extra Zustand wie AND C.city_id='4'
erfordert eine zusätzliche Minute oder mehr; Dies ist immer noch akzeptabel, aber nicht bevorzugt.
Mein wirkliches Problem tritt auf, wenn ich versuche, eine andere Bedingung hinzuzufügen, um nur Duplikate von Firmen zu finden, die eine bestimmte Zeichenfolge im Namen haben, unter Verwendung dieser Bedingung AND C.name LIKE '%International%'
, dies gibt nur keine Ergebnisse zurück.
Kann mir jemand helfen herauszufinden, was ich falsch mache?
Dank
Leider, ich glaube nicht, dass Sie eine effiziente Verwendung von Indizes in diesem Szenario machen - obwohl 1 Minute + scheint sehr langsam. – Strawberry