Bonjour à tous, je bute sur une requête SQL un peu complexe.
Pour l'instant, j'ai une requête très simple :
Il s'avère que ma table possède un champ intitulé "Priorité" qui contient un niveau de priorité de 1 à 4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT `Contenu`, `Type`, `Signature` FROM `ressources` WHERE `date`<= NOW() AND `dateValidite` > NOW()
Ce que je voudrais via SQL c'est, dans les lignes sélectionnées par ma requête :
- Si il y a des lignes contenant la priorité à 1 -> ne sélectionner que les éléments contenant la priorité à 1.
- Si il y a des lignes contenant la priorité à 2 et/ou 3 (mais pas de 1) -> Sélectionner tous les éléments contenant la priorité 2 et 3 (exclusion du niveau de priorité 4).
- Si il n'y a que des lignes contenant la priorité à 4 -> Sélectionner tout le monde.
Je me doute qu'il faut que j'utilise du CASE ou/et du EXISTS mais je n'arrive pas à formuler correctement ma requête.
Si une âme charitable pouvait me donner un coup de pouce...
PS : Je peux faire le tri via PHP mais je pense que ce serait bien plus rapide à l’exécution et instructif via SQL.
Partager