Advanced MySQL user variable techniques

Très peu de gens savent que MySQL a des variables utilisateur qui permettent de garder des résultats en mémoire sans avoir à les enregistrer dans des variables temporaires du client.

Je viens de tomber par hasard sur le blog suivant dans lequel Baron Schwartz donne des exemples concrets : http://www.xaprb.com/blog/2006/12/15/advanced-mysql-user-variable-techniques/

Documentation officielle MySQL :
http://dev.mysql.com/doc/refman/5.0/fr/example-user-variables.html

Pour ma part je me contente de vous donner un exemple de requête pour calculer une somme cumulative, s’arrêtant lorsque la somme dépasse 1000:

SELECT NULL AS item_id,  NULL AS prix, NULL AS total
  FROM dual
 WHERE (@total := 0)
 UNION
SELECT item_id, prix, @total := @total + prix AS total
  FROM items
 WHERE @total < 1000;

Leave a Reply