Hallo, liebe Leute,
ich habe von MySQL-Abfragen eigentlich nicht so sehr die Ahnung, darum wäre ich Euch dankbar, wenn Ihr mal einen Blick auf folgende Gedankengänge richten könntet - ist allerdings etwas kompliziert (wenigstens für micht)
- ich benutze ein WP vor allem, um viele, viele Termine zu veröffentlichen, dazu benutze ich das wundebare RS-Event-Plugin, das macht folgendes:
- Events sind normale Beiträge
- sie erhalten in der wp_postmeta einen Eintrag mit
meta_key = rs_event und
meta_value = Termin als Unix-Timestamp
- abgelaufene Termine werden vom Plugin in der Terminübersicht natürlich ausgeblendet - das ist der Sinn der Plugins. Die abgelaufenen Termine (es sind nämlich richtig viele) machen die Datenbank natürlich fett, sind nur noch Balast, die würde ich gern löschen.
- Ich habe mir überlegt mit einer MySQL - Abfrage alle Beiträge zu löschen für die
- ein meta_key = rs_event existiert und
- deren meta_value älter als "jetzt" ist
- außerdem müssen in der wp_term_relationships alle entsprechenden Einträge gelöscht werden
Was meint Ihr, irgendwo ein Denkfehler? Irgend etwas übersehen?
Nun habe ich mir folgende Abfrage zurecht geschustert:
DELETE `wp_posts`. * , `wp_term_relationships`. * , `wp_postmeta`. *
FROM `wp_term_relationships` , `wp_posts` , `wp_postmeta`
WHERE (
(
`wp_postmeta`.`post_id` = `wp_posts`.`ID`
)
AND (
`wp_term_relationships`.`object_id` = `wp_posts`.`ID`
)
)
AND (
(
`wp_postmeta`.`meta_key` = 'rs_event'
)
AND (
`wp_postmeta`.`meta_value` < UNIX_TIMESTAMP( NOW( ) )
)
)
Alles anzeigen
Wie gesagt, ich habe nicht so die Ahnung davon hab natürlich auch nicht vor, die Abfrage ohne vorheriges Backup laufen zu lassen.
Wäre Euch trotzdem sehr dankbar, wenn Ihr vorher mal drauf gucken könnt, was meint Ihr, könnte das so gehen?