Fuchswerk: Fehler 1241 SQL

UPDATE Buch
SET einkaufspreis = (1,05 * einkaufspreis)
WHERE einkaufspreis <30;

Erzeugt einen:
19:39:38 UPDATE Buch SET einkaufspreis = (1,05 * einkaufspreis) WHERE "einkaufspreis" <30 Error Code: 1241. Operand should contain 1 column(s) 0.000 sec

Ich hab gerade keine Ahnung warum oder wo der Fehler liegt.
jemand ne ahnung?

  1. UPDATE Buch
    SET einkaufspreis = (1,05 * einkaufspreis)
    WHERE einkaufspreis <30;

    Die geschweiften Klammern erzeugen eine geordnete Liste. Weg damit und sollte laufen

    1. Die geschweiften Klammern erzeugen eine geordnete Liste. Weg damit und sollte laufen

      geschweift, was rede ich da.

      1. Die geschweiften Klammern erzeugen eine geordnete Liste. Weg damit und sollte laufen

        geschweift, was rede ich da.

        Ja welche geschweiften Klammern? ich sehe da keine...

        1. Ja welche geschweiften Klammern? ich sehe da keine...

          Ich meinte die runden.

          1. Ja welche geschweiften Klammern? ich sehe da keine...

            Ich meinte die runden.

            Ohne Runde klammern kommt aber der selbe fehler

          2. Ja welche geschweiften Klammern? ich sehe da keine...

            Ich meinte die runden.

            Selbst das ist Schwachsinn!

            1. Selbst das ist Schwachsinn!

              Totaler Schwachsinn! Was sagst du hierzu?

              SELECT 1,2 => okay
              SELECT (1,2) => #1241 - Operand should contain 1 column(s)

              1. Hi,

                Selbst das ist Schwachsinn!

                Totaler Schwachsinn! Was sagst du hierzu?

                SELECT 1,2 => okay
                SELECT (1,2) => #1241 - Operand should contain 1 column(s)

                Es ging dem Frager nicht darum, zwei Werte zu selektieren, sondern *einen* Wert berechnen zu lassen. Und natürlich sind dabei runde Klammern erlaubt.

                MfG ChrisB

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                1. Es ging dem Frager nicht darum, zwei Werte zu selektieren, sondern *einen* Wert berechnen zu lassen. Und natürlich sind dabei runde Klammern erlaubt.

                  Okay, dann mag meine Antwort in diesem Zusammenhang unpassend gewesen sein. Schwachsinnig war sie trotzdem nicht, in anderen Kontexten führen unnötige Klammerungen nämlich zum selben Fehler.

                  Die passenden Antworten stehen ja zum Glück hier, hier und hier.

  2. Auch und mysql benutzt die Punktnotation für Fließkommazahlen

  3. Moin!

    UPDATE Buch
    SET einkaufspreis = (1,05 * einkaufspreis)
    WHERE einkaufspreis <30;

    Erzeugt einen:
    19:39:38 UPDATE Buch SET einkaufspreis = (1,05 * einkaufspreis) WHERE "einkaufspreis" <30 Error Code: 1241. Operand should contain 1 column(s) 0.000 sec

    Doppelte Anführungszeichen um den Spaltennamen sind eher falsch. Die stehen zwar nicht in deinem Query drin, aber in der Fehlermeldung, und von allein schreiben Datenbanken das nicht um. Vermutlich ist dein Query also falsch und bezeichnen nicht die Spalte "einkaufspreis", sondern den String "einkaufspreis".

    Und wenn's das nicht ist: Zeige wirklich mal deinen echten Query so, wie er erzeugt wurde - nicht wie du ihn nacherzählen kannst.

    - Sven Rautenberg

  4. GELÖST:

    SQL kann mit dem , nicht automatisch umgehen, man muss das umschreiben oder . verwenden.

  5. hi,

    Error Code: 1241. Operand should contain 1 column(s) 0.000 sec

    Naja, Du meinst 1.05, hast jedoch 1,05 notiert und die engine denkt, Du meinst damit zwei Spalten, weil das ',' der Listentrenner ist und weist dich darauf hin, dass da nur eine Spalte zu stehen hat.

    Hotti