UPDATE und ORDER BY

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

  • UPDATE und ORDER BY

    Hi!

    Hier erstmal der Code:

    "update tablname set lang_id=5 where school_id='278' order by sl_id asc limit 1"

    wobei sl_id der PRIMARY KEY AUTO_INCREMENT ist. Nun will ich hiermit die kleinste sl_id für Einträge 278 bei school_id haben um nur diesen einen Eintrag (Limit 1) zu ändern.

    Laut MYsql.com ist sowohl ORDER BY als auch LIMIT bei UPDATE-Queries erlaubt.

    Der Mysql-Error is immer:
    You have an error in your SQL syntax near 'order by sl_id asc limit 1' at line 1

    Hat jemand ne Idee?

    Dank, Norm[COLOR=darkblue]

  • #2
    was ich weiß braucht doch limit immer 2 argumente ? also von, bis
    LIMIT 0,1 etc ..
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      Richtig, soll aber angeblich auch mit einer Zahl funktionieren.

      Hab aber mal mit LIMIT 0,1 probiert, ging auch nicht.
      Desweiteren weist die Fehlermeldung darauf hin daß der Fehler irgendwo bei ORDER BY liegt...

      Thanx.
      Any ideas?

      Kommentar


      • #4
        UPDATE Anweisungen haben weder ein ORDER BY noch ein LIMIT !

        ORDER BY und LIMIT kannst du bei SELECT Anweisungen benutzen
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Könnte eine Antwort sein.

          Jedoch scheint nur ein Order By nicht zu funktionieren, weil LIMIT 1 ohne ORDER BY funktioniert.
          Ausserdem steht auf MYSQL.COM was anderes:

          http://www.mysql.com/doc/en/UPDATE.html

          Wenn Deine Antwort stimmt, wärs Zeit die MYSQL-Seite zu ändern????

          Thänx.

          Kommentar


          • #6
            Asche auf mein Haupt.

            Das ist mir neu, aber wenns da steht, sollte es auch gehen
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #7
              Order by in Verbindung mit mit Update macht doch aber überhaupt keinen Sinn. Wieso sollte man die Reihenfolge verändern wollen, in der die Datensätze geändert werden?
              Zuletzt geändert von Nezzar; 13.11.2002, 12:51.
              "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

              Kommentar


              • #8
                @Nezzar

                in Verbindung mit LIMIT kann das schon einen Sinn machen.
                zB

                "bei des 10 Schnellsten 3 Punkte dazu addieren"

                update tabelle
                set punkte = punkte +3
                order by mytime desc
                limit 10
                TBT

                Die zwei wichtigsten Regeln für eine berufliche Karriere:
                1. Verrate niemals alles was du weißt!


                PHP 2 AllPatrizier II Browsergame

                Kommentar


                • #9
                  OK, daran hab ich nicht gedacht, dann machts natürlich sinn.
                  "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

                  Kommentar


                  • #10
                    Richtig!

                    In diesem Sinne war auch mein Posting:

                    - nur den kleinsten Wert ändern.
                    - ohne limit würde alles geändert werden, da wäre ORDER BY egal.

                    Kommentar


                    • #11
                      Ähem,

                      um zum Sinne zurückzukommen:

                      ne Lösung oder sowas schonmal probiert hat keiner?

                      Thänks, Norm


                      (PS Da hamwa ja mal wieder ne MYSQL-Grauzone entdeckt )

                      Kommentar


                      • #12
                        ich glaub sowas ist erst ab mysql 4.x möglich..
                        meine Projekte bestaunen: http://www.kleiza.de

                        Kommentar


                        • #13
                          Genau genommen gibt es den Zusatz ORDER BY seit der MySQL 4.0.0 (Oktober 2001) und dieses war ursprünglich im Handbuch auch entsprechend vermerkt ... ist wohl irgendwie untergegangen ...

                          Wie die Notation: [LIMIT [offset,] rows] erkennen läßt ist offset optional. LIMIT 1 Selektiert, updated oder löscht einen Datensatz beginned mit dem ersten ... diese Funktion ist auch in den 3.23er Versionen vorhanden ... sollte sie zumindest sein.
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar

                          Lädt...
                          X