Suchen und löschen von ähnlichen Codeschnipseln

michaelxxx

Aktiver Benutzer
Beiträge
25
Hi,

ich muss doch noch mal ein Thema aufgreifen, für das ich bis jetzt noch keine Lösung finden konnte.

Ich habe in meinem Blog Shortcodes für Galerien, die ich immer (mit einem kleinen Zusatz) 2 mal einfügen muss, damit das Galerie Plugin die Galerie entsprechend darstellt. Das sieht dann z.B. wie folgt aus:

[galleryj ids="37943,37944,37945,37946"]
[gallery ids="37943,37944,37945,37946"]

[galleryj ids="37970,37971,37972,37973,37974,37975,37976,37977"]
[gallery ids="37970,37971,37972,37973,37974,37975,37976,37977"]

Mittlerweile braucht man diese doppelt Einbindung dank einer neuen Einstellung aber nicht mehr! Jetzt wäre es natürlich mega aufwendig, meine Galerie Shortcodes in 600 Beiträgen manuell zu bearbeiten :(

Kann ich das irgendwie in der DB lösen? Ich möchte quasi in allen Beiträgen die Zeile mit galleryj rausschmeißen. Gibt es hierfür einen Befehlt mit MySQL?

Viele Grüße
Michael
 
Werbung:
Ok, und das ### aus dem Befehl...

UPDATE tabelle
SET feld = REPLACE(feld, '<script src=\'###\' type=\'text/javascript\'></script>', '')

...ist dann eine Art Platzhalter, egal was dazwischen steht?

Ich habe ja immer andere IDs in meinen Shortcodes stehen. Müsste das dann irgendwie so sein?

UPDATE omp_posts
SET post_content = REPLACE(post_content '[galleryj ids=\'###\' ]', '')
 
Reguläre Ausdrücke sind wohl dann Dein Freund.

Ich hab mir mal ein paar Beispiele angesehen, aber als "Nicht-MySQLer" ist auch das nicht einfach für mich auf mein Beispiel umzusetzen/umzuschreiben ;)

Ist das so richtig?

UPDATE omp_posts
SET post_content = REPLACE(post_content, '[galleryj ids=/"."/', '')

Oder muss es REGEXP_LIKE, REGEXP_SUBSTR oder was ganz anderes sein?
 
aber als "Nicht-MySQLer" ist auch das nicht einfach für mich

ha, da haben wir was gemeinsam ;-)

Code:
test=*# select * from michaelxxx;
 id |                                                                t                                                               
----+---------------------------------------------------------------------------------------------------------------------------------
  3 | [galleryj ids="37943,37944,37945,37946"][gallery ids="37943,37944,37945,37946"]
  4 | [galleryj ids="37970,37971,37972,37973,37974,37975,37976,37977"][gallery ids="37970,37971,37972,37973,37974,37975,37976,37977"]
(2 rows)

test=*# select id, regexp_replace(t,'\[galleryj[^\]]*','') from michaelxxx;
 id |                          regexp_replace                         
----+------------------------------------------------------------------
  3 | ][gallery ids="37943,37944,37945,37946"]
  4 | ][gallery ids="37970,37971,37972,37973,37974,37975,37976,37977"]
(2 rows)
 
Danke für Deine Hilfe :)

Ich sehe in Deinen Codezeilen, dass der galleryj Teil - bis auf die ] Klammer - wegfällt, aber so ganz verstehe ich den Code noch nicht für meine Umsetzung. Das ist doch kein MySQL Befehl, oder?
 
Danke für den Hinweis:

Code:
test=*# select id, regexp_replace(t,'\[galleryj[^\]]*\]','') from michaelxxx;
 id |                         regexp_replace                         
----+-----------------------------------------------------------------
  3 | [gallery ids="37943,37944,37945,37946"]
  4 | [gallery ids="37970,37971,37972,37973,37974,37975,37976,37977"]
(2 rows)

regexp_replace() gibt es meines Wissens nach nicht in MySQL, aber noch mal: ich nix MySQL.
 
Werbung:
Zurück
Oben