Michi: simple MySQL-Anweisung mit upper drin mag nicht

Hallo,

beim Ausführen von

SELECT upper(email) FROM kunden

in MySQL, wobei email vom Typ TEXT (alternativ auch schon VARCHAR(255) probiert) bekomme ich den Fehler:

______________________________________________________________________

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( email ) FROM grundrissprofi\_kunden  LIMIT 0, 30' at line 1

______________________________________________________________________

Schade, dass die MySQL-Fehlermeldungen nicht etwas präziser auf die Fehlerursache eingehen.

SELECT upper('test')

(als Test, ob upper erkannt wird) dagegen funktioniert.

Was passt jetzt an der obigen Anweisung nicht...? :)

Gruß Michi

  1. Hello,

    SELECT upper(email) FROM kunden

    könnte da eventuell ein Leerzeichen zwischen upper und die öffnende Klammer geraten sein?
    Da müsste zwar dann eigentlich kommen "Funktion datenbankname.upper does not exist" aber Du hast uns bisher nicht gesagt, welche Version Du benutzt. Vielleicht war das füher anders ...

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hallo,

      könnte da eventuell ein Leerzeichen zwischen upper und die öffnende Klammer geraten sein?

      Hab ich auch erst gemeint, aber - nicht der Fall. ;)

      Nochmal direkt rauskopiert:

      SELECT upper(email) FROM kunden

      Auf dem Server ist MySQL 4.1.22 installiert. Hab auch schon versucht, rauszubekommen, ob es vielleicht mit der Version zusammenhängt, nun steht aber in den MySQL-Referenzen nicht dabei, mit welcher Version da was wie dazukam... oder gibts da irgendwo online einen Hinweis?

      Komm da im Moment nicht dahinter, was an der Anweisung nicht stimmt.

      Gruß Michi

      1. Hello,

        SELECT upper(email) FROM kunden

        #1064 ist auf jeden fall ein Parse Error.

        Da ist also schon eine Macke im SQL-String.
        Wie kommt der denn zur Schnittstelle?
        Scriptsprache, Frontend, Konsole?

        Hast Du die Möglichkeit, die MySQL-Konsole (z.B. über ssh) zu benutzen?

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. ____________________________________________________________________

          #1064 ist auf jeden fall ein Parse Error.

          Da ist also schon eine Macke im SQL-String.
          Wie kommt der denn zur Schnittstelle?
          Scriptsprache, Frontend, Konsole?

          Hast Du die Möglichkeit, die MySQL-Konsole (z.B. über ssh) zu benutzen?

          ____________________________________________________________________

          Den Fehler krieg ich, wenn ich die Query über PHP verarbeite genauso wie in der Query-Box von phpMyAdmin. Habs auch schon mit Alias probiert, ändert nichts.

          SSH-Zugang hab ich keinen.

          (Da sind bereits meterlange Anweisungen im System, die machen alle keine Probleme, aber bei der mit Abstand Kürzesten komm ich nicht dahinter, worans da jetzt fehlt. :) Wenn ich upper direkt auf einen fix kodierten String anwende, gehts wie gesagt, also upper ist dieser Version bekannt und dass es nur für fixe Strings bekannt ist, nicht aber für Datenbankspalten, kann ich mir jetzt nicht vorstellen...?)

          Etwas ratlos. :)

          1. Hello,

            Wenn ich upper direkt auf einen fix kodierten String anwende, gehts wie gesagt, also upper ist dieser Version bekannt und dass es nur für fixe Strings bekannt ist, nicht aber für Datenbankspalten, kann ich mir jetzt nicht vorstellen...?)

            Nö, das funktioniert hier auch.
            Ich habe auch alle mir einfallenden Fehler schon künstlich erzeugt um die Meldung zu repeoduzieren. Aber das hat nichts gebracht.

            Liegt es vielelicht an den Backticks? Vielleicht sehen die bei Dir nur so aus, wie Backticks.

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

            1. Auf einem anderen meiner Server klappt das komischerweise, da wend ich mich mal an den Support, ob die eine Vermutung haben, ich post dann das Ergebnis... ;)

              1. Hello,

                hast du zufällig eine Spalte "upper" in deiner Tabelle? UPPER ist _nicht_ auf der Liste der MySQL reserved Words, vielleicht beißt sich das.

                Ansonsten erlaube ich mir die Anmerkung, dass deine Ausgangsfehlermeldung nicht zu deinem Ausgangsstatement passt! kunden vs grundrissprofi_kunden
                Sowas macht bei der gemeinsamen Fehlersuche immer misstrauisch.

                MfG
                Rouven

                --
                -------------------
                sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1
  2. Hello,

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( email ) FROM grundrissprofi\_kunden  LIMIT 0, 30' at line 1

    Also bei Version 3.23.55 bekomme ich einen sehr ähnlichen Fehlertext, wenn zwischen Funktionsname und Klammer ein Leerzeichen steht. Das mag die Version auch nicht, wuittiert es aber mit einer anderen Fehlermeldung, als z.B. die MySQL 5.0.x

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)