Requête SQL : tri particulier

Protée
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 348
Inscription: 27 Déc 2006

Requête SQL : tri particulier

Message le Mar Sep 08, 2009 21:03

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 ?


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Requête SQL : tri particulier

Message le Mar Sep 08, 2009 21:56

3 requêtes avec un UNION ?

Protée
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 348
Inscription: 27 Déc 2006

Re: Requête SQL : tri particulier

Message le Mar Sep 08, 2009 23:35

En effet, je ne vois pas mieux que cette solution...
Merci.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: Requête SQL : tri particulier

Message le Mer Sep 09, 2009 0:08

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.


Mountain Magazin
WRInaute impliqué
WRInaute impliqué
 
Messages: 598
Inscription: 1 Oct 2004

Re: Requête SQL : tri particulier

Message le Mer Sep 09, 2009 8:10

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.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités