Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Wie doppelte Wordpress posts aus Datenbank löschen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von peter85, 26 November 2014.

  1. peter85

    peter85 Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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...)
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Wenn Du das nur als select machst, ist dann a.id auch doppelt? Oder hast Du untersch. a.id - Werte?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden