Mehrere Spalten einer Tabelle prüfen und zusammenfügen?!
-
- Mitglied
- Beiträge: 221
- Registriert: 22.01.2003 19:36
- Wohnort: md
Mehrere Spalten einer Tabelle prüfen und zusammenfügen?!
Ich habe mit hilfe eines Mods in der Tabelle phpbb_topics neben den normalen spalten nicht nur die spalte topic_title, sondern auch noch topic_extra, topic_extra1, topic_extra2 und topic_extra3. Nun möchte ich vor einer Konvertierung zu phpbb3 erreichen, dass in allen topics, welche einen eintrag in der spalte topic_extra haben eben dieser eintrag vor den entsprechenden topictitel gesetzt oder verschoben wird. Wie ist so etwas realisierbar?
Ähnliches soll mit topic_extra1, topic_extra2 und topic_extra3 passieren, sobald in diese felder etwas eingetragen ist, steht automatisch in der spalte topic_title der eintrag "ohne Titel" ....sobald ein Topic also diesen eintrag in der Spalte topic_title hat, sollen die Einträge aus topic_extra1, topic_extra2 und topic_extra3 in die Spalte topic_title verschoben oder kopiert werden.
Idealer Weise sollte zwischen allen Einträgen immer noch ein " - " eingefügt werden, als "Leerzeichen Bindestrich Leerzeichen".
Wäre fantastisch wenn mir jemand helfen könnte oder zumindest einen Tip hätte.
Ähnliches soll mit topic_extra1, topic_extra2 und topic_extra3 passieren, sobald in diese felder etwas eingetragen ist, steht automatisch in der spalte topic_title der eintrag "ohne Titel" ....sobald ein Topic also diesen eintrag in der Spalte topic_title hat, sollen die Einträge aus topic_extra1, topic_extra2 und topic_extra3 in die Spalte topic_title verschoben oder kopiert werden.
Idealer Weise sollte zwischen allen Einträgen immer noch ein " - " eingefügt werden, als "Leerzeichen Bindestrich Leerzeichen".
Wäre fantastisch wenn mir jemand helfen könnte oder zumindest einen Tip hätte.
Versuch mal das (ungetestet, Backup nicht vergessen oder erst mal in einer Testtabelle probieren):
Das sollte den Inhalt von topic_extra gefolgt vom Inhalt von topic_title nach topic_title kopieren.
Code: Alles auswählen
"UPDATE table SET topic_title = CONCAT(topic_extra, topic_title)"
-
- Mitglied
- Beiträge: 221
- Registriert: 22.01.2003 19:36
- Wohnort: md
nach erstem kurzem problem, hats jetzt funktioniert - DANKE
...nur wie schaffe ich es, dass zwischen topic_extra und topic_title ein leerzeichen-bindestrich-leerzeichen eingefügt wird...also quasi so:
topic_extra - topic_title
und wie mach ich das ganze für die variante wenn im topic_title "ohne Titel" dann dort topic_extra1 - topic_extra2 - topic_extra3 einzufügen?
...nur wie schaffe ich es, dass zwischen topic_extra und topic_title ein leerzeichen-bindestrich-leerzeichen eingefügt wird...also quasi so:
topic_extra - topic_title
und wie mach ich das ganze für die variante wenn im topic_title "ohne Titel" dann dort topic_extra1 - topic_extra2 - topic_extra3 einzufügen?
-
- Mitglied
- Beiträge: 221
- Registriert: 22.01.2003 19:36
- Wohnort: md
okay, problem selbst gelöst
bleibt die frage bzgl topic_extra1, 2 und 3
Code: Alles auswählen
UPDATE phpbb_topics SET topic_title = CONCAT(topic_extra, " - ", topic_title)
-
- Mitglied
- Beiträge: 221
- Registriert: 22.01.2003 19:36
- Wohnort: md
Ich habe es schon geahnt.
oder so ähnlich. Vorausgesetzt das Gegenteil von "wenn etwas in der spalte topic_extra steht" ist eine leerer String ('').
Code: Alles auswählen
"UPDATE phpbb_topics SET topic_title = CONCAT(topic_extra, " - ", topic_title) WHERE topic_extra <> ''"
Dann formuliere sie mal, ich sehe nicht was Du wissen willst.siebenschlaefer hat geschrieben:bleibt die frage bzgl topic_extra1, 2 und 3
-
- Mitglied
- Beiträge: 221
- Registriert: 22.01.2003 19:36
- Wohnort: md
danke, hat super funktioniert... den rest konnte ich mir mittlerweile selbst zusammenbasteln
Grund dieser ganzen Teilung war, dass in bestimmten foren der topic titel bei der eingabe aus drei feldern bestehen sollte (extra1, extra2, extra3), so dass der user gezwungen ist 3 bestimmte angaben als topic titel zu machen. Eben so einen mod benötige ich jetzt für phpbb3, natürlich lieber mit der option, dass nach der eingabe in die drei felder dann doch alles im topic_title mit trennung von " - " gespeichert wird. Sowas kannst du nicht zufällig basteln? soll auch nicht umsonst sein
Code: Alles auswählen
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title,'ohne Titel', CONCAT(topic_extra1, " - ", topic_extra2, " - ", topic_extra3))