Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Spalten mit Daten ergänzen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von veri1003, 21 Januar 2016.

  1. veri1003

    veri1003 Benutzer

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

    akretschmer Datenbank-Guru

    Du suchst UPDATE.
     
  3. veri1003

    veri1003 Benutzer

    Danke für die Antwort, ich dachte mit update werden die aktuellen Daten durch die neuen ersetzt?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ja, das willst Du doch, oder? Du willst bestehende Datensätze ändern.
     
  5. veri1003

    veri1003 Benutzer

    Nein sorry, ev. hab ich mich falsch ausgedrückt, ich würde diese gern ergänzen
     
  6. ukulele

    ukulele Datenbank-Guru

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

    veri1003 Benutzer

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

    ukulele Datenbank-Guru

    Alles was in `` steht interpretiert MySQL als Spaltenname. ,Text ist aber eine Zeichenkette und muss dementsprechend gekennzeichnet werden.
     
  9. akretschmer

    akretschmer Datenbank-Guru

    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)
    
     
  10. veri1003

    veri1003 Benutzer

    danke für eure schnellen antworten, werde das am späten nachmittag gleich ausprobieren!! lg
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden