Mysql
 sql >> Baza danych >  >> RDS >> Mysql

USUŃ wszystkie zduplikowane tematy z kilkoma warunkami

W MySQL , nie można określić tabeli docelowej jako DML operacja w podzapytaniu (chyba że zagnieździsz ją o więcej niż jeden poziom głębiej, ale w tym przypadku nie uzyskasz wiarygodnych wyników i nie będziesz mógł używać skorelowanych podzapytań).

Użyj JOIN :

DELETE  td
FROM    topics td
JOIN    topics ti
ON      ti.object_id = td.object_id
        AND ti.title = td.title
        AND ti.topic_id > td.topic_id;

Utwórz indeks na topics (object_id, title, topic_id) aby to działało szybko.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak używać funkcji mysql now() w cakephp dla pól daty?

  2. Jak pobrać wartości rozwijane z bazy danych i wyświetlić je w jsp

  3. czy mogę zresetować pole auto_increment w mySql?

  4. SQL vs MySQL:reguły dotyczące operacji agregujących i GROUP BY

  5. Jak zignorować zduplikowane wiersze podczas wstawiania?