condition dans une requête ?

Eléphant du PHP | 57 Messages

14 févr. 2007, 07:05

Bonjour,

J'ai une table avec notamment 2 champs :
exit_log (ex : 2007-02-12 17:29:46)
log (ex : 2007-02-12 17:28:46)

Dans la colonne exit_log, nous pouvons également avoir "0000-00-00 00:00:00". L'idée étant que si c'est 0, la différence devrait être 600 (soit 10 minutes).

Y a-t-il un moyen rapide d'avoir une telle condition directement dans la requête ci-dessous ? Ou bien faut-il nécessairement passer par l'intermédiaire de PHP ?

Code : Tout sélectionner

SELECT SUM((TIME_TO_SEC(exit_log) - TIME_TO_SEC(log))) AS total from tbl_log WHERE id_log='1'
Merci d'avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 févr. 2007, 11:51

Avec la syntaxe CASE de MySQL, tu peux effectivement gérer des conditions directement dans ta requête. Quelque chose du genre :

Code : Tout sélectionner

SELECT CASE WHEN champX = 0 THEN 600 ELSE champX - champY END FROM ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 57 Messages

19 févr. 2007, 19:41

Merci pour l'info !