Rainer: mysql-Spaltenupdate über phpmyadmin

Hallo,

update tabelle set Spalte1 = Spalte1*1.5; // Spalte1 um 50% erhöhen
update tabelle set Spalte33 = Spalte5*1.5; // Spalte 33 ist Spalte5 um 50% erhöht

funktionieren beide.

Ist das korrekt so oder macht man das eigentlich anders?

Schöne Grüße, Rainer

  1. Hi!

    update tabelle set Spalte1 = Spalte1*1.5; // Spalte1 um 50% erhöhen
    update tabelle set Spalte33 = Spalte5*1.5; // Spalte 33 ist Spalte5 um 50% erhöht
    funktionieren beide.
    Ist das korrekt so oder macht man das eigentlich anders?

    Syntaktisch korrekt ist das. Und ja, man kann auf diese Weise Werte in Spalten ändern - sogar in einem Statement zusammengefasst ist das möglich. Die Frage ist nur, was du eigentlich für einen Anwendungsfall hast.

    Lo!

    1. Die Frage ist nur, was du eigentlich für einen Anwendungsfall hast.

      Preiserhöhung. Noch eine Frage dazu. Wenn mein Spaltentyp decimal(6,2) ist, muss ich mich dann noch ums Runden kümmern oder rundet mysql dann kfm.?

      Schönen Grüß, Rainer

      1. Hi!

        Die Frage ist nur, was du eigentlich für einen Anwendungsfall hast.
        Preiserhöhung.

        Ich wüsste jetzt nichts, was dabei gegen diese Vorgehensweise spricht.

        Noch eine Frage dazu. Wenn mein Spaltentyp decimal(6,2) ist, muss ich mich dann noch ums Runden kümmern oder rundet mysql dann kfm.?

        Darauf würde ich mich nicht verlassen. Warum sollte es ausgerechnet diese Rundungsweise an den Tag legen? Ich hab im Handbuch nichts dazu gefunden. Eher dass das Verhalten bei zu vielen Nachkommastellen systemabhängig ist (wobei da wohl meist nur abgeschnitten wird).

        Lo!

        1. Darauf würde ich mich nicht verlassen. Warum sollte es ausgerechnet diese Rundungsweise an den Tag legen? Ich hab im Handbuch nichts dazu gefunden. Eher dass das Verhalten bei zu vielen Nachkommastellen systemabhängig ist (wobei da wohl meist nur abgeschnitten wird).

          Das systemabhängige Runden habe ich im Handbuch nur zu ROUND gefunden. Da ist es von der Bibliothek abhängig. Das Handbuch (meine ich) sagt zu DECIMAL, dass kfm. gerundet wird. (?)

          DECIMAL-Spalten und genaue Zahlen werden nach der Regel „Ab der Hälfte wird aufgerundet“ behandelt: Werte mit einem Dezimalteil von .5 oder mehr werden, wie das nächste Beispiel zeigt, immer von null weg auf den nächstgelegenen Integer aufgerundet:

          Schönen Gruß, Rainer

          1. Hi!

            Das Handbuch (meine ich) sagt zu DECIMAL, dass kfm. gerundet wird. (?)
            DECIMAL-Spalten und genaue Zahlen werden nach der Regel „Ab der Hälfte wird aufgerundet“ behandelt [...]

            Auch gut. Diese Seite hatte ich zwar auch offen, aber diese Stelle dann doch überlesen.

            Lo!

            1. Hi nochmal,

              falls hier noch wer mitliest, ich habe noch eine Rückfrage:

              Wie kann ich eine if-Bedingung in die Query einbauen?

              update tabelle set Spalte33 = Spalte5*1.5; // Spalte 33 ist Spalte5 um 50% erhöht

              Spalte33 soll nur dann um 50% erhöht werden, wenn Spalte5 größer als z.b. 1000 ist, ansonsten soll Spalte33 den Wert von Spalte30 annehmen.

              Schönen Gruß, Rainer

              1. Hi!

                Wie kann ich eine if-Bedingung in die Query einbauen?

                Mit der IF()-Funktion.

                Spalte33 soll nur dann um 50% erhöht werden, wenn Spalte5 größer als z.b. 1000 ist, ansonsten soll Spalte33 den Wert von Spalte30 annehmen.

                ... SET Spalte33 = IF(wenn, dann, ansonsten)

                Lo!