Requête SQL : tri particulier

WRInaute occasionnel
Bonjour,
je souhaiterais faire un affichage selon un ordre particulier de mes tuples (ou individus) ou lignes... d'une table.

Admettons une table suivante dotée de 3 champs : champ0 (texte), champ1 (booléen) et champ2 (booléen).

Est-il possible de demander d'afficher une liste de ces tuples dans cet ordre
  • Individus lorsque champ1 et champ2 = 1 classé par ordre alphabétique du champ0
  • puis individus ayant champ1=0 et champ2=1 classé par ordre alphabétique du champ0
  • puis individus ayant champ2=0 par ordre alphabétique du champ0

Select * from table
where champ1="1" and champ2="1"...
Quelqu'un peut m'aider à poursuivre ?
 
WRInaute accro
select * from table where ... order by case when champ1 and champ2 then 0 when champ2 then 1 else 2 end,champ0

ou encore

select * from table where ... order champ2 desc,champ1 desc,champ0

mais là si champ2=0 ça va mettre les champ1=1 puis champ1=0.

Donc:

select * from table where ... order champ2 desc,champ2 and champ1 desc,champ0

Jacques.
 
WRInaute occasionnel
Autrement, tu récupère tes résultats de requête que tu place dans plusieurs array() php en fonction de leur nature (avec un premier tri via SQL), puis tu gère les array() obtenus en php (tri, mélange aléatoire...).

Ça permet aussi de faire une seule requête souvent.
 
Discussions similaires
Haut