Mysql
 sql >> база данни >  >> RDS >> Mysql

Обединете и след това изтрийте дублиращи се записи

Не мисля, че можете да направите това в SQL ефективно. Един бавен начин да го направите е нещо като:

CREATE TEMPORARY TABLE tmp_table (...);
INSERT INTO tmp_table SELECT phone, max(rating) FROM table GROUP BY phone;
TRUNCATE table;
INSERT INTO table SELECT * FROM tmp_table;

По-добър начин би бил съхранена процедура или външен скрипт. Изберете всички редове от таблицата, подредена по phone и направете групирането/сливането/изтриването ръчно (прегледайте резултатите, сравнете с phone стойност от предишния ред, ако е различна, имате нова група и т.н.). Писането на съхранени процедури в MySQL обаче е болезнено, така че няма да пиша кода вместо вас. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въвеждането на външни ключове в MySQL намалява ли производителността

  2. как да конвертирате сесия за хибернация само за четене в запис по време на транзакция (Master/Slave DB)

  3. Как да съхранявате Emoji символ в MySQL база данни

  4. Как да съхранявате неанглийски знаци?

  5. Къде са разликите при използване на XML и MySQL база данни? Кое да използвам?