В таблице у меня есть три столбца - id, name и count. Большое количество столбцов имен одинаково (из-за отсутствия UNIQUE на ранней стадии), и я хочу это исправить. Тем не менее, столбец id используется другими (4 или 5, я думаю, мне придется проверять документы), чтобы искать имя, и просто их удаление нарушит. Итак, есть ли хороший, чистый способ сказать «найти все идентичные записи и объединить их вместе»?Есть ли чистый способ очистки дубликатов записей в MySQL?
2
A
ответ
4
Такого рода вопрос приходит время от времени. Нет, нет действительно чистого способа сделать это. Вы должны изменить все строки в дочерней таблице, которые зависят от нежелательных значений в родительской таблице, прежде чем вы сможете устранить нежелательные строки в родительской таблице.
MySQL поддерживает несколько столов UPDATE
и DELETE
заявления (в отличие от других марок базы данных) и, таким образом Вы можете сделать некоторые довольно аккуратные трюки, как следующее:
UPDATE names n1
JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name)
JOIN child_table c ON (n2.id = c.id)
SET c.name_id = n1.id
ORDER BY n1.id DESC;
После того, как вы сделали это по всему столу ребенка (ы), вы можете использовать синтаксис нескольких таблиц MySQL DELETE
для удаления нежелательных строк в родительской таблице:
DELETE FROM n2
USING names n1 JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name);
0
Почему вы не можете сделать что-то вроде
update dependent_table set name_id = <id you want to keep> where name_id in (
select id from names where name = 'foo' and id != <id you want to keep>)
Смежные вопросы
- 1. MySQL Обновление дубликатов записей
- 2. Удаление дубликатов записей MySQL
- 3. Чистый способ очистки содержимого текстового файла
- 4. Есть ли чистый способ перемещения/в/ствол?
- 5. Есть ли чистый и чистый способ обработки нулей с выходами?
- 6. Есть ли более быстрый способ очистки консоли?
- 7. Есть ли более чистый способ настроить это?
- 8. Есть ли программный способ очистки FilePicker?
- 9. Есть ли способ очистки UILabel и UIImageView?
- 10. есть ли более чистый способ отменить метод?
- 11. Есть ли чистый способ определения версии RSS?
- 12. Есть ли более чистый способ сортировки списка?
- 13. Поиск дубликатов записей php mysql
- 14. Есть ли способ найти временную метку старых записей в Mysql
- 15. изменение существующих дубликатов записей в mysql
- 16. Oracle очистки повторяющихся записей
- 17. Быстрое удаление дубликатов записей в MySQL
- 18. Есть ли более чистый способ представить эту идиому в C#?
- 19. Есть ли способ заставить mysql обрабатывать большое количество одновременных записей?
- 20. Как сбросить вставку дубликатов записей в mysql?
- 21. Поиск дубликатов записей в таблице MySQL
- 22. Удаление дубликатов записей в базе данных MySQL
- 23. обработка дубликатов записей в mysql Вставка выражения
- 24. Поиск дубликатов записей в MySQL 2
- 25. Есть ли чистый способ добавления записей NOP в файл AFP с использованием Java?
- 26. Удаление дубликатов записей из базы данных Mysql
- 27. Есть чистый способ закрытия системы в питоне
- 28. mysql - лучший способ избежать дубликатов
- 29. Самый чистый способ очистки GLPK при завершении программы
- 30. Есть ли простой способ очистки трубы в C