Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Cast

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Cast

    Hallo,

    ich setze folgenden SQLstring bei mir zuhause mit Erfolg ab.
    Code:
    SELECT LKW, cast( Palette AS UNSIGNED ) , Gewicht
    FROM stammdaten_temp
    WHERE Lkw = '10'
    GROUP BY Palette
    LIMIT 0 , 30
    Dort funktioniert er einwandfrei. Auf meinem Server bzw. in PhpmyAdmin hingegen bekomme ich folgende Fehlermeldung:

    Fehler

    SQL-Befehl :

    SELECT LKW, cast( Palette AS UNSIGNED ) , Gewicht
    FROM stammdaten_temp
    WHERE Lkw = '10'
    GROUP BY Palette
    LIMIT 0 , 30

    MySQL meldet:


    #1064 - You have an error in your SQL syntax near '( Palette AS UNSIGNED ) , Gewicht
    FROM stammdaten_temp
    WHERE Lkw = '10'
    GROUP ' at line 1



    Kann mir da jemand helfen?


  • #2
    Server haben üblicherweise eine MySQL-Version <4.

    http://dev.mysql.com/doc/mysql/de/News-4.0.2.html

    Da PHPs MySQL-Client aber ohnehin nur Strings ausspuckt .. ist das ziemlich egal ...

    Kommentar


    • #3
      Hallo,

      Zitat von Guradia
      Da PHPs MySQL-Client aber ohnehin nur Strings ausspuckt .. ist das ziemlich egal ...
      das ist ja mein Problem. Ich bekomme die Zahlen als Text geliefert nur muss ich die sortiert haben.

      wenn ich einfach einen Select mache bekomme ich es folgendermaßen
      1
      10
      2
      3
      4

      ich will es aber aufsteigend

      und bekomme es einfach nicht hin.

      Kommentar


      • #4
        Du willst also schon von MySQL danach sortieren lassen ...
        Dann sind folgendes das sinnigste was Du tun kannst. Wenn ohnhin nur Zahlen drin gespeichert sind, sollten da auch tatsächlich Zahlen drin sein ...
        Code:
        ALTER TABLE `stammdaten_temp` CHANGE `Palette` `Palette` INT(11) UNSIGNED;

        Kommentar


        • #5
          Zitat von Guradia
          Du willst also schon von MySQL danach sortieren lassen ...
          Dann sind folgendes das sinnigste was Du tun kannst. Wenn ohnhin nur Zahlen drin gespeichert sind, sollten da auch tatsächlich Zahlen drin sein ...
          Code:
          ALTER TABLE `stammdaten_temp` CHANGE `Palette` `Palette` INT(11) UNSIGNED;
          Das wollte ich ja auch machen. Das ist mir ja auch klar. aber ich bekomme die Zahlen schon immer als Text.
          Kann mann es nicht bei der SQL Abfrage als Zahl umwandeln?

          Kommentar


          • #6
            Zitat von Schiedsrichter
            Das wollte ich ja auch machen. Das ist mir ja auch klar.
            Dann tu es.
            Zitat von Schiedsrichter
            aber ich bekomme die Zahlen schon immer als Text.
            Da liegt ein Designfehler .. korrigiere ihn
            Zitat von Schiedsrichter
            Kann mann es nicht bei der SQL Abfrage als Zahl umwandeln?
            Update MySQL

            Kommentar


            • #7
              Zitat von Guradia
              Zitat von Schiedsrichter
              Das wollte ich ja auch machen. Das ist mir ja auch klar.
              Dann tu es.
              Zitat von Schiedsrichter
              aber ich bekomme die Zahlen schon immer als Text.
              Da liegt ein Designfehler .. korrigiere ihn
              Zitat von Schiedsrichter
              Kann mann es nicht bei der SQL Abfrage als Zahl umwandeln?
              Update MySQL
              ok hast mich überzeugt. So nun habe ich noch ein anderes Problem. Ist es möglich eine Excel-tabelle (nicht csv) direkt in eine Tabelle ohne phpmyadmin einzulesen. Wenn ja, wie?

              Bis jetzt habe ich es immer so gemacht, das ich die Exceltabelle als csv abgespeichert habe und diese dann per FTP hochgeladen und eingelesen habe. Das kann ich aber von meinem Benutzer nicht erwarten, weil er es nicht kapiert. Geht das?

              Kommentar


              • #8
                Für ganz gewitzte:
                -> CronJob
                -> Lädt Datei auf den Server
                -> Lässt MySQL das Teil per LOAD DATA INFILE einlesen

                Das Besorgen der Datei kannst du natürlich auch über einen Upload in PHP regeln und dann vom User oder automatisch LOAD DATA INFILE absetzen.

                Vorrausgesetzt der DB-User, den du nutzt, hat das FILE-Privileg.

                Kommentar


                • #9
                  Zitat von Guradia
                  Für ganz gewitzte:
                  -> CronJob
                  -> Lädt Datei auf den Server
                  -> Lässt MySQL das Teil per LOAD DATA INFILE einlesen

                  Das Besorgen der Datei kannst du natürlich auch über einen Upload in PHP regeln und dann vom User oder automatisch LOAD DATA INFILE absetzen.

                  Vorrausgesetzt der DB-User, den du nutzt, hat das FILE-Privileg.
                  also mit Cronjob kann ich es nicht machen, da es jedesmal eine neue Datei ist die einen anderen Namen hat.
                  Ich würde es gerne mit einem Formular machen mit Filedialog->datei auswählen-> Datei einlesen. Wie stelle ich sowas denn an?

                  Kommentar

                  Lädt...
                  X