Вы можете начать с чего-то подобного, который покажет, есть ли строки, которые являются точными дубликатами друг друга (и их количество):
SELECT
CompanyName, City, etc...
, COUNT(*) AS DuplicateCount
FROM
TableToCheck
GROUP BY
CompanyName, City, etc... --- all columns except the Primary Key
HAVING
COUNT(*) > 1
Если вы хотите найти только дублирующиеся адреса, высделать что-то вроде этого:
SELECT
Address
, COUNT(*) AS DuplicateCount
FROM
TableToCheck
GROUP BY
Address
HAVING
COUNT(*) > 1
Читая ваш вопрос еще раз, я думаю, что я неправильно понял, что вы спрашиваете.Если вы не хотите находить дубликаты (а их нет), но хотите найти слова с акцентом (и, возможно, замените их словами без акцента):
В вашей таблице, вероятно, используется сортировка без учета регистра (как utf_general_ci
или utf_unicode_ci
), чтобы вы могли скопировать таблицу в новую таблицу с той же кодировкой, но с учетом регистра, например utf_bin
.
Затем вы можете создать список символов с акцентоми затем напишите запрос для проверки этого списка в полях вашей новой таблицы (это будет очень медленно):
SELECT nt.*
FROM NewTable AS nt
JOIN AccentedList AS al
WHERE nt.field LIKE CONCAT('%', al.AccentedChar, '%')
GROUP BY nt.PK
или выполните запрос к REPLACE()
этим символам, например 'ß'
с помощью 'ss'
например.