Wie doppelte Wordpress posts aus Datenbank löschen

peter85

Benutzer
Beiträge
5
Hallo,
ich habe folgenden SQL-Befehl um alle Daten von posts aus der Datenbank zu löschen:

delete a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE a.post_type = 'listing'

Allerdings werden so ALLE posts des custom post types "listing" gelöscht.
Ich möchte aber nur die löschen, die doppelt vorhanden sind - also Dublette soll gelöscht werden und einmal bleibt erhalten.

Wie muss der SQL-Befehl aussehen, dass das funktioniert?

Danke und Grüße
 
Werbung:
Ich möchte aber nur die löschen, die doppelt vorhanden sind - also Dublette soll gelöscht werden und einmal bleibt erhalten.

Dazu müßtest Du ein Select haben, was Dir alle Dubletten liefert, aber auch noch extra ein Unterscheidungskriterium dazu. In PostgreSQL könnte man dazu die CTID der Tupel nehmen oder mit row_number() arbeiten - beides geht nicht in MySQL.

Warum sind da eigentlich Dubletten? Die vermeidet man ja vorher durch ein Design mit Primary Keys und/oder Unique Keys. Ist das Wordpress? Ist das so schlecht? (gut, unter Hackern gilt es ja eh als Fernwartungstool...)
 
Werbung:
Zurück
Oben