8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je souhaite utiliser des variables MySQL car les résultats de mes requêtes seront très différents en fonction de nombreux paramètres de ces requêtes. Je simplifie :

SELECT @products := 12, @products := 15


Dans cet exemple, la variable "products" est définie sur 12. Puis redéfinir sur 15. Elle vaudra donc 15. Jusque là, tout va bien.

SELECT @products := SUM(product_quantity), @products := 15


Dans cette requête, "products" vaut le total de "product_quantity", puis est redéfinir à 15. Seulement, le résultat final ne vaut pas 15 mais le total de "product_quantity". Pourquoi ? Il semblerait que SUM() soit prioritaire sur l’ordre de définition des variables ce qui est insensé :s

Merci d'avance Smiley smile
De même, je viens de remarquer que autant :

@total2 := 15, @total2 AS total


Renvoi le bon résultat, autant ceci retourne zéro :

@total2 := SUM(champs), @total2 AS total


En d'autre terme, une variable définie retourne ce que je veux, un SUM seul retourne ce que je veux, mais une variable valant le résultat d'un SUM retourne zéro plutôt que le résultat ... :s
Hello.

Après un petit tour sur la doc, je me demande si ton souci n'est pas lié à
a écrit :
Note : dans une requête SELECT, chaque expression est n'évaluée que lors de l'envoi au client


Là j'ai pas de mySql sous la main, mais tu obtiens quelle valeur pour @products si à la place de
SELECT @products := SUM(product_quantity), @products := 15
tu essaies un
SET @products = SUM(product_quantity); SET @products = 15
?