web-dev-qa-db-ger.com

SQL-Abfrage, um alle Beiträge in den neuesten überarbeiteten Zustand zu versetzen

Ich exportiere meine WordPress-Beitragsdaten in ein externes Tool * und wollte eine Abfrage schreiben, die mir die aktuell veröffentlichten Beiträge aus der wp_posts-Tabelle aber als letzte Revision (dh neuesten Titel, Inhalt usw., aber mit dem Original) liefert ID des Beitrags).

select * from wp_posts where post_parent = 0;

Dadurch erhalte ich alle ursprünglichen Beiträge, jedoch nur in dem Zustand, in dem sie zum ersten Mal erstellt wurden, ohne die Überarbeitungen zu berücksichtigen. Dann habe ich so etwas ausprobiert.

select * from wp_posts where post_parent != 0 group by post_parent;

Aber das gibt mir nur die erste Revision und nicht die letzte. Ich denke, es würde auch Beiträge ausschließen, die nie überarbeitet wurden, was auch für mich nicht funktioniert.

Ich überlegte, ob ich als nächstes den Tisch für sich selbst betreten und herausfinden sollte, ob ich ihn für einen bestimmten post_parent auf die maximale ID herunterfiltern kann, wollte aber wissen, ob jemand bereits eine Lösung hatte, bevor ich das ausprobiere.

Wie kann ich alle Posts erhalten, aber mit all ihren neuesten Überarbeitungen? Dies muss möglich sein, da die Site Beiträge anzeigt.


* Das fragliche Tool ist Solr. Wenn Sie neugierig sind, schreibe ich eine Abfrage, um alle Felder zu erhalten, die ich indizieren möchte.

1
Kimberly W

Dank @ AhmedMahdis Kommentar habe ich die folgenden Arbeiten für meine Situation herausgefunden:

select * from wp_posts
where post_status = 'publish'
order by post_modified desc;

Die WHERE-Bedingung ist erforderlich, um alle Entwürfe oder privaten Posts zu entfernen, mit denen ich nicht befasst bin.

1
Kimberly W