Andreas: SQL: Frage zu UPDATE

Hallo!

Kann ich es schaffen das ich an die Daten einer Spalte jeweils einen Text anhänge? Also was der Art

UPDATE xy SET spalte = spalte & ' neuer text';

Aber das gibt 0. Hat jemand ne Idee wie ich das machen könnte?

Grüße
Andreas

  1. Hallo!

    Kann ich es schaffen das ich an die Daten einer Spalte jeweils einen Text anhänge? Also was der Art

    UPDATE xy SET spalte = spalte & ' neuer text';

    ist ungetestet:

    UPDATE tabelle SET spalte=CONCAT(spalte, ' neuer Text');

    MfG, André Laugks

    1. Hi!

      Kann ich es schaffen das ich an die Daten einer Spalte jeweils einen Text anhänge? Also was der Art

      UPDATE xy SET spalte = spalte & ' neuer text';

      ist ungetestet:

      UPDATE tabelle SET spalte=CONCAT(spalte, ' neuer Text');

      Das gibt mir '0 neuer Text'

      Im manual steht da auch nichts vo der Möglichkeit eine Spalte zu verknüpfen, aber mit Zahlen geht das doch auch so einfach, das mußt doch auch irgendwie mit Strings gehen, oder?

      Grüße
      Andreas

      1. Hallo!

        UPDATE tabelle SET spalte=CONCAT(spalte, ' neuer Text');

        Das gibt mir '0 neuer Text'

        Im manual steht da auch nichts vo der Möglichkeit eine Spalte zu verknüpfen, aber mit Zahlen geht das doch auch so einfach, das mußt doch auch irgendwie mit Strings gehen, oder?

        UPDATE tabelle SET spalte=CONCAT(spalte, ' neuer Text');

        Bei mir funktioniert das wunderbar. Habe es mit VARCHAR und TEXT versucht.

        • Verwendest Du die richtige Spalte?
        • Steht überhaupt was in den Spalten?

        MfG, André Laugks

        1. Hi!

          UPDATE tabelle SET spalte=CONCAT(spalte, ' neuer Text');

          Bei mir funktioniert das wunderbar. Habe es mit VARCHAR und TEXT versucht.

          Ja, hast Recht, war ein anderer Fehler, hatte vergessen die vorherigen Versuche zu "bereinigen", geht tatsächlich, danke Euch!

          Grüße
          Andreas

  2. Hi,

    Kann ich es schaffen das ich an die Daten einer Spalte jeweils einen Text anhänge?

    woher sollen wir das wissen, wenn Du nicht verrätst, welches DBMS Du verwendest? Denkbar sind z.B. spalte+'Text', concat(spalte, 'Text') und spalte||'Text' als Lösungen - oder vielleicht geht es auch nur, indem Du den Wert vorher ausliest und in Deiner Programmlogik veränderst, bevor Du ihn zurückschreibst.

    Bei Fragen zu Datenbanken und/oder SQL
     _
    (_)_ __ ___  _ __ ___   ___ _ __
    | | '_ \_ \| '\_ _ \ / _ \ '__|
    | | | | | | | | | | | |  __/ |
    |_|_| |_| |_|_| |_| |_|\___|_|

    das verwendete DBMS nennen.

    Cheatah

    1. Hallo!

      Sorry, natürlich
         __  ___     ___ ____  __
        /  |/  /_ __/ __/ __ / /
       / /|_/ / // /\ / /_/ / /__
      /_/  /_/\, /___/\__\\__/
             <___/

      ,hatte nicht dran gedacht da ich schon über 100 Fragen zu MySQL und noch keine einzige zu einer anderen DBMS gestellt habe. mit + gab einen Syntax Error, concat(spalte) ergibt 0 und mit & geht auch nicht, werde mal || probieren!

      Grüße
      Andeas

      1. Hallo nochmal!

        __  ___     ___ ____  __
          /  |/  /_ __/ __/ __ / /
        / /|_/ / // /\ / /_/ / /__
        /_/  /_/\, /___/\__\\__/
               <___/

        Ich habe jetzt alle bisher genannten Methoden nochmals probiert, immer wird aus der Spalte eine 0, fast immer wird gerechnet, nur  bei CONCAT nicht, aber da wir duch aus der Spalte eine 0.

        Geht das vielleicht gar nicht in MySQL?

        Grüße
        Andreas

        1. Hi,

          Geht das vielleicht gar nicht in MySQL?

          ein kurzer Blick in die Doku (unter "Functions for Use in SELECT and WHERE Clauses") sagt mir, dass CONCAT() oder CONCAT_WS() genau richtig sind. Wenn das bei Dir falsche Ergebnisse liefert, solltest Du das erst mal näher untersuchen; etwa mit SELECT CONCAT('test', 'me') und ähnlichen Scherzen.

          Ach übrigens: "UPDATE returns the number of rows that were actually changed." Ich hoffe, Du hast nicht den Rückgabewert falsch interpretiert ;-)

          Cheatah

          1. Hi,

            Geht das vielleicht gar nicht in MySQL?

            ein kurzer Blick in die Doku (unter "Functions for Use in SELECT and WHERE Clauses") sagt mir, dass CONCAT() oder CONCAT_WS() genau richtig sind. Wenn das bei Dir falsche Ergebnisse liefert, solltest Du das erst mal näher untersuchen; etwa mit SELECT CONCAT('test', 'me') und ähnlichen Scherzen.

            Bin ich Jesus? *g*
            Ich habe bei Update geguckt, woher soll ich wissen das ich für sowas bei SELECT gucken muß?

            Grüße
            Andreas

            1. Hi,

              Ich habe bei Update geguckt, woher soll ich wissen das ich für sowas bei SELECT gucken muß?

              wenn Du bei UPDATE nachgesehen hast dann weißt Du, dass dort _keine_ Funktion beschrieben ist, auch nicht CONCAT() - da Dir die Verwendung keinen SQL-Fehler geschmissen hat, muss sie trotzdem erlaubt sein, also ist sie wohl anderorts beschrieben.

              Im Inhaltsverzeichnis der Doku habe ich nach "function" gesucht, und habe hinter dem gefundenen Einstiegspunkt durchaus eine Beschreibung der Funktion gefunden. So schwer ist es doch nun auch nicht :-)

              Cheatah