Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

[MySQL] Wie Felder zu einem String verschmelzen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Daniela
PostRank 4
PostRank 4
Beiträge: 113
Registriert: 13.09.2004, 20:09
Wohnort: Hamburg

Beitrag von Daniela » 05.12.2005, 00:19

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


Bauchladen
PostRank 6
PostRank 6
Beiträge: 388
Registriert: 24.04.2005, 13:51
Wohnort: Hamburg

Beitrag von Bauchladen » 05.12.2005, 00:58

lies mal MySQL "CONCAT"
Bild

Daniela
PostRank 4
PostRank 4
Beiträge: 113
Registriert: 13.09.2004, 20:09
Wohnort: Hamburg

Beitrag von Daniela » 05.12.2005, 01:18

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...

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 05.12.2005, 01:50

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 :)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag