Seite 1 von 1

Alle Titel nur in einem einzigen Forum abändern?

Verfasst: 20.06.2009 00:34
von LuLa
Hallo zusammen!

Um den Titel (subject) in allen Beiträgen abzuändern, habe ich bislang immer erfolgreich folgende SQL-Befehle angewendet:

Code: Alles auswählen

UPDATE phpbb_posts_text SET post_subject=REPLACE(post_subject, 'SUCHEN', 'ERSETZEN') WHERE post_subject LIKE '%SUCHEN%'
und dann noch
UPDATE phpbb_topics SET topic_title=REPLACE(topic_title, 'SUCHEN', 'ERSETZEN') WHERE topic_title LIKE '%SUCHEN%'
Nun möchte ich in allen Titeln wieder eine Textstelle abändern, diesmal aber nur in den Beiträgen eines einzigen Forums - nicht für das gesamte Board!
Wie bekomme ich das hin? Geht das in einem einzigen SQL-Befehl?
Oder gibt es da etwas als PHP-MOD für den Admin?


LG, LuLa

Re: Alle Titel nur in einem einzigen Forum abändern?

Verfasst: 25.06.2009 20:21
von gn#36
Das ist kompliziert, die Texte und Foren IDs werden nicht in einer Tabelle gespeichert. Je nach SQL Server könnte das hier klappen (auf jeden Fall ein Backup vorher machen verifizieren!):

Code: Alles auswählen

UPDATE phpbb_posts_text SET post_subject=REPLACE(post_subject, 'SUCHEN', 'ERSETZEN') WHERE post_subject LIKE '%SUCHEN%' AND post_id IN 
(SELECT post_id from phpbb_posts WHERE forum_id = {HIER DIE ID EINSETZEN})
Weil das mit subselect arbeitet könnte das u.U. recht langsam sein wenn die Datenbank groß ist.

Re: Alle Titel nur in einem einzigen Forum abändern?

Verfasst: 25.06.2009 23:08
von LuLa
Ach... das sieht ja einfach aus. Vielen Dank für die Hilfe!

Re: Alle Titel nur in einem einzigen Forum abändern?

Verfasst: 26.06.2009 12:19
von LuLa
Funktioniert. Nochmals danke. Nach...

Code: Alles auswählen

UPDATE phpbb_posts_text SET post_subject=REPLACE(post_subject, 'SUCHEN', 'ERSETZEN') WHERE post_subject LIKE '%SUCHEN%' AND post_id IN (SELECT post_id from phpbb_posts WHERE forum_id = FORUMID)
muß man dann noch

Code: Alles auswählen

UPDATE phpbb_topics SET topic_title=REPLACE(topic_title, 'SUCHEN', 'ERSETZEN') WHERE topic_title LIKE '%SUCHEN%' AND forum_id = FORUMID
ausführen.