Bonjour,
je cherche un moyen pour qu'en une seule requête j'aie toujours une valeur retournée.
Voici un exemple :
Donc dans cette table très simple, j'ai pour un même numéro (NUM) 3 enregistrements, si je demande avec un bête select la valeur pour le NUM 1 et l'ID 42, je pourrais très facilement récupérer 142.ID NUM VALEUR COMMENT
0 1 0 VALEUR PAR DEFAUT
2 1 102
42 1 142
Mais imaginons que je veuille la valeur pour NUM = 1 et ID = 42, mais que si ID = 42 n'existe pas, je veuille retourner la valeur pour ID = 0
Mon problème : j'arrive à faire çà grâce au limit et à l'order by, mais le problème c'est que je spécifie que NUM = 1 mais si je voulais faire çà pour plusieurs valeurs de NUM, le limit me posera problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ID, VALEUR FROM T WHERE NUM = 1 AND (ID = 42 OR ID = 0) ORDER BY ID DESC LIMIT 1
Comment faire ? faut-il obligatoirement faire plusieurs requêtes ?
Partager