Seite 1 von 1

[MySQL] Wie Felder zu einem String verschmelzen?

Verfasst: 05.12.2005, 00:19
von Daniela
Hallo,

ich joine einen Teil einer Tabelle mit einem anderen Teil dieser Tabelle. Als Ergebnis erhalte ich 2 Spalten. Diese 2 Spalten möchte ich nun wenn möglich direkt im Query zu einem String verschmelzen (durch Leerzeichen getrennt) und diesen an das Ende der Tabelle anfügen.

Geht sowas?

Hintergrund:
Ich habe eine Tabelle in der Keywords gespeichert sind. Diese sind jeweils einer Liste zugeordnet. Nun sollen die Keywords von 2 Listen miteinander kombiniert werden (im Beispiel die Listen 279 und 266). Eine gejointe Liste habe ich schon hinbekommen:

Code: Alles auswählen

SELECT key1.keyword, key2.keyword FROM keywords as key1, keywords as key2 WHERE key1.l_id = 279 AND key2.l_id = 266
Nur würde ich das nun gerne noch mit einem Leerzeichen dazwischen kombinieren und am besten auch noch direkt in die Tabelle schreiben. Sosnt muss ich das mit PHP machen und das braucht immer so lange bei großen Datenmengen da das eine Unmenge an INSERTs wird.

lG,
Daniela

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


[MySQL] Wie Felder zu einem String verschmelzen?

Verfasst: 05.12.2005, 00:58
von Bauchladen
lies mal MySQL "CONCAT"

[MySQL] Wie Felder zu einem String verschmelzen?

Verfasst: 05.12.2005, 01:18
von Daniela
Dankeschön,

genau das habe ich wohl gesucht. Ist immer ein wenig schwer solche Sachen zu finden wenn man sonst eigentlich nur das Grundrepertoire von MySQL braucht.

Nun nur noch rausfinden wie ich das direkt in die selbe Tabelle schreiben kann...

[MySQL] Wie Felder zu einem String verschmelzen?

Verfasst: 05.12.2005, 01:50
von Southmedia
INSERT ... SELECT, mit dem ich mir meinen Nachmittag versüßt habe, ist dein Freund. Kann manchmal ziemlich zickig sein.

Du musst wohl zuerst die neue Liste in der Listentabelle anlegen um die neue l_id zu bekommen, sonst fehlt dir das ja in der Keywordtabelle oder du musst es nachträglich updaten - sehr hässlich. Also erstmal $l_id mit der neuen Listen-ID füllen.

Dann sowas in der Art:

Code: Alles auswählen

INSERT INTO keywords (l_id, keyword) SELECT '$l_id', CONCAT(key1.keyword, ' ', key2.keyword) as keyword FROM keywords as key1, keywords as key2 WHERE key1.l_id = 279 AND key2.l_id = 266
Das fügt in die Spalte l_id den Wert von $l_id und in die Spalte keyword die Werte der SELECT-Abfrage ein. Hier siehst du auch gleich noch wie man CONCAT benutzt, falls du das noch nicht hinbekommen hast.

Und nun hoffe ich, dass das alles stimmt und funktioniert :)