Spalten mit Daten ergänzen

veri1003

Benutzer
Beiträge
5
Hallo - ich hätte eine Frage, habe im Forum aber nix passendes gefunden -

Ich habe die Tabelle s_articles in welcher um die 3000 Artikel angelegt sind.
Diese hat einige Spalten, unter anderem die Spalte 'keywords', in der Daten drinstehen.
Ich möchte nun von 25 Artikeln diese Daten ergänzen.

Mein Abfrage schaut so aus:

INSERT INTO `s_articles`(`keywords`)
SELECT `name`
FROM `s_articles` INNER JOIN `aaa` ON `id` = `article_ID` ;

Allerdings werden so nur die 25 Datensätze ans ende der Tabelle rangehängt (leere Zeilen mit nur einem Datensatz 'keywords', klar ... ich bin leider nicht sonderlich gut in mysql - hätte jemand einen Tipp für mich?
LG Verena

Edit: in der Tabelle aaa stehen diese daten in der Spalte article_ID, welche mit den Daten der Spalte 'id' der TAbelle s_articels' übereinstimmen - da heißt alle Artikel, welche übereinstimmen sollen den artikelnnamen zusätzlich zu den aktuellen daten in den keywords haben
 
Werbung:
Du kannst den Inhalt von keywords in dein Update mit einbeziehen in dem du deinen neuen Wert anhängst. Also z.B.:
Code:
UPDATE tabelle
SET spalte = spalte + ', Text'
Ob das Sinn macht ist erstmal nicht so einfach zu beurteilen. Auch muss du bedenken das NULL + 'Text' immer NULL ergibt.
 
Danke, das probier ich gleich aus. hab dazu die testtabelle aaa wo ich mir die datenreingespeichert habe. die hat noch eine Tabelle: article_keywords, da hab ich einige daten reingeschrieben, und die sollen nun zum TEsten dienen.
Habe mein SQL-Statement so umgebaut

UPDATE `aaa` SET `article_keywords`= `article_keywords` + `,Text`
SELECT `name`
FROM `s_articles` INNER JOIN `aaa` ON `id` = `article_ID` ;

Bekomme aber einen Syntaxfehler, irgendwas in der ersten Zeile. Hab die erste Zeile in allen möglichen Varianten umgeswitched, komme aber leider nicht drauf. Fältt euch am ersten Blick was auf? lg
 
Alles was in `` steht interpretiert MySQL als Spaltenname. ,Text ist aber eine Zeichenkette und muss dementsprechend gekennzeichnet werden.
 
Code:
test=*# select * from a;
 id | val
----+------
  1 | bla
  2 | blub
(2 rows)

test=*# select * from b;
 id | val
----+-----
  1 | neu
(1 row)

test=*# update a set val = b.val || b.val from b where a.id=b.id;
UPDATE 1
test=*# select * from a;
 id |  val
----+--------
  2 | blub
  1 | neuneu
(2 rows)
 
Werbung:
Zurück
Oben