PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   max() in where Bedingung möglich? (https://www.php-resource.de/forum/sql-datenbanken/17125-max-in-where-bedingung-moeglich.html)

Kicky 05-03-2003 13:12

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.

mysql_query("UPDATE foto SET bild_vor=0 WHERE thema='1' and bild_nummer='max(bild_nummer)'");


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

herzlichen Dank

Kicky

gastgast 05-03-2003 13:22

als string geht es ganz bestimmt nicht

versuche

bild_nummer=max(bild_nummer)

Kicky 05-03-2003 13:38

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?

Abraxax 05-03-2003 15:57

HAVING MUSS bei funktionen in der einschränkung verwendet werden :teach:

Code:

UPDATE foto

SET    bild_vor = 0

WHERE  thema = 1

HAVING bild_nummer = max(bild_nummer)


Kicky 05-03-2003 16:37

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

Abraxax 05-03-2003 16:45

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


Kicky 05-03-2003 17:00

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

Abraxax 05-03-2003 17:06

eigentlich müsste es gehen... ;)

schaue mal zur not hier in der doku nach.
http://www.mysql.com/doc/en/UPDATE.html

FrozenEmotions 28-10-2007 21:13

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.

PHP-Desaster 28-10-2007 21:43

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

FrozenEmotions 28-10-2007 21:46

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 :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:20 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG