Возникновение дублей в bd при удалении пробела с лева

Нашел небольшую ошибку в базе данных, как оказалось она намного больше чем я думал. В общем стал удалять пробел с лева в столбще "name" это поле является уникальным при удалении UPDATE products SET name = LTRIM( name ) мускул начал выдавать ошибки о дублях, в ручную потратил добрый час на удаление но с учетом что в базе больше 100 000 записей это как мертвому припарка. Подскажите как можно этот процесс немного ускорить? Кусок моей bd


Ответы (1 шт):

Автор решения: Darevill

Можно сделать копию таблицы с данными, очистить исходную таблицу и перегнать данные из копии с учётом удалённых пробелов.

INSERT IGNORE INTO `products` (`id`, `name`, ....)
SELECT `id`, TRIM(`name`), .... FROM `products_tmp` ORDER BY `id` DESC

Обратная сортировка для того, чтобы в конечный набор попали товары, которые добавлялись последними, так как они скорее всего содержат более актуальную информацию, чем старые копии с меньшим id.

→ Ссылка