Lösche doppelten Datensatz in wp_postmeta

Einige meiner Posts haben zwei Werte für einen cb_full_width_post namens cb_full_width_post . Ich möchte nur die Datensätze behalten, die einen Metawert von nosidebar-narrow . Das bedeutet, ich muss

  1. Identifizieren Sie Datensätze in wp_postmeta, die dieselbe Post-ID haben und auch einen Eintrag für den cb_full_width_post
  2. Löschen Sie alle in Schritt 1 identifizierten Datensätze, die keinen Metawert von nosidebar-narrow

Bisher habe ich dieses SQL entwickelt, um Posts mit zwei oder mehr Werten für den gleichen cb_full_width_post zu identifizieren:

 SELECT post_id, meta_key, count(*) FROM wp_postmeta WHERE meta_key = 'cb_full_width_post' GROUP BY post_id, meta_key HAVING COUNT(*) > 1 

Dies gibt eine Ergebnismenge von wp_postmeta-Datensätzen mit mehr als einem Wert für cb_full_width_post .
Ich bin auf dem nächsten Schritt fest. Ich muss die Ergebnismenge aus der obigen Abfrage verwenden, die mir die Post-IDs gibt, auf die ich zielen muss. Ich muss diese Post-IDs in wp_postmeta finden und alle Datensätze löschen, bei denen meta_value != 'nosidebar-narrow'

Bearbeiten: einige visuelle Informationen

 Record #1 post_id: 1 meta_key: cb_full_width_post meta_value: Good Record #2 post_id: 1 meta_key: cb_full_width_post meta_value: Bad_if_duplicate Record #3 post_id: 2 meta_key: cb_full_width_post meta_value: Bad_if_duplicate 

Ich möchte nur Datensatz Nr. 2 löschen, weil er Metawert “Bad_if_duplicate” hat und weil es ein Duplikat ist (gleiche Beitrags-ID wie Datensatz Nr. 1). Obwohl Datensatz # 3 den Metawert “Bad_if_duplicate” hat, möchte ich ihn nicht löschen, da dies der einzige Metawert ist, dh es ist kein Duplikat.

Solutions Collecting From Web of "Lösche doppelten Datensatz in wp_postmeta"