max() in where Bedingung möglich?

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

  • max() in where Bedingung möglich?

    Hallo an alle,

    ich versuche ein update auf meine Datenbank zu machen, wo die Spalte bild_nummer den höchsten wert hat. Ich habe stundenlang gesucht nach max(), aber mir ist immer noch nicht klar ob - und wenn wie ich es in die Bedingung bauen kann.

    [COLOR=darkblue]mysql_query("UPDATE foto SET bild_vor=0 WHERE thema='1' and bild_nummer='max(bild_nummer)'");[/COLOR]


    So funktioniert es leider nicht. Ich hoffe, jemand hat einen Rat für mich und sage vorab

    herzlichen Dank

    Kicky

  • #2
    als string geht es ganz bestimmt nicht

    versuche

    bild_nummer=max(bild_nummer)

    Kommentar


    • #3
      Hm, ja ich gebe zu, das es bescheuert war es als string abzufragen, aber leider geht es auch nicht ohne ' '. Hat noch jemand eine Idee?

      Kommentar


      • #4
        HAVING MUSS bei funktionen in der einschränkung verwendet werden

        Code:
        UPDATE foto
        
        SET    bild_vor = 0
        
        WHERE  thema = 1
        
        [b]HAVING[/b] bild_nummer = max(bild_nummer)
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich verstehe zwar nicht wieso, aber leider funktioniert HAVING auch nicht. Ich kann nur den Wert mit max(bild_nummer) per select rausholen und dann einer Variablen zuordnen und per abfrage where $bild_nummer =$Variable machen. Ist sehr umständlich und sieht nicht wirklich schön aus, aber so lange mir nichts besseres einfällt???? Danke aber dennoch , vielleicht ergiebt sich ja doch noch eine Lösung, ich werde auch noch mal weiter mit HAVING probieren

          Gruß Kicky

          Kommentar


          • #6
            hab grad gesehen, dass HAVING gar nicht bei UPDATE geht. sorry...
            das geht nur bei SELECT.

            hier eine lösung, die laufen sollte.

            Code:
            UPDATE    foto
            
            SET       bild_vor = 0
            
            WHERE     thema = 1
            
            ORDER BY  bild_nummer DESC
            
            LIMIT     1
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Danke für Deine Mühe, es ist mir ja schon unangenehm, aber leider funktioniert es auch so nicht - schnüff. Ich werde wohl bei meiner umständlicheren Version bleiben müssen. Aber dennoch herzlichen Dank

              Gruß Kicky

              Kommentar


              • #8
                eigentlich müsste es gehen...

                schaue mal zur not hier in der doku nach.
                http://www.mysql.com/doc/en/UPDATE.html
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Ich glaube das ist nur Möglich mit einer vorherigen SELECT-Abfrage die den Maximalwert ermittelt der dann per Variable in die UPDATE-query eingefügt wird. Aber bitte korrigiert mich wenn es auch direkt geht.
                  www.FrozenEmotions.de

                  Kommentar


                  • #10
                    Du weißt schon, dass der letzte Beitrag vom 05-03-2003 ist??

                    Kommentar


                    • #11
                      ja - aber ich habe nur gerade das selbe Problem

                      und das hier liest sicher noch der ein oder andere oder es gibt einen Lösungsvorschlag dafür
                      www.FrozenEmotions.de

                      Kommentar

                      Lädt...
                      X