Retourner aux forums || Retourner au forum
Programmation.SQL : Restreindre le group by dans un requète mysql
Posté par Uld (page perso, ) le 29 janvier 2006
0
Bonjour tout le monde,alors voilà mon problème, je souhaterais faire une requète mysql dans ce genre:
SELECT id FROM membres ORDER BY rang ASC
L'idée c'est de classer les membres par rang, jusque là OK
Le soucis c'est qu'après je fait un for($i=0;$i<nbr_enregistrement;$i++) et j'aimerai traiter d'abord les rang 1,2,3,n et à la fin seulement les rangs=0.
Soucis: mon ORDER BY rang ASC me colle les rang=0 en premier...
Comment faire donc pour traiter mes enregistrement par rang croissant mais rang 0 en dernier seulement???
--
Ubuntu is an ancient african word meaning : "I can't configure Debian".
> Lire le message (4 commentaires, moyenne: 4,8).
Ubuntu is an ancient african word meaning : "I can't configure Debian".
solutions betes ...
Posté par
Moun's (page perso, ) le 29/01/2006 à 23:47. (lien). Évalué à 5.
cas 1 : en faisant 2 requetes
genre : SELECT id FROM members WHERE rang > 0 ORDER BY rang ASC;
puis : SELECT id FROM members WHERE rang = 0;
cas 2 : en gérant une pile
version pseudo-PHP :
SELECT id FROM membres ORDER BY rang ASC
$rang_0 = array();
for( $i=0 ; $i < $nb_reg ; $i++ ) {
if ( $enregistrement["rang"] == 0 ) {
$rang_0[] = $enregistrement;
} else {
# cas general
}
}
foreach ( $rang_0 as $enregistrement ) {
# traitement rang 0
}
IF
Posté par
Twidi (Jabber id, page perso, ) le 30/01/2006 à 01:47. (lien). Évalué à 3.
Aide sur la fonction if :
http://dev.mysql.com/doc/refman/5.0/fr/control-flow-function(...)
SELECT id, IF(rang=0, 1, 0) AS rangnonzero, ordre FROM membres order by rangnonzero, rang;
Aide sur la fonction if :
http://dev.mysql.com/doc/refman/5.0/fr/control-flow-function(...)
-
[^]Re: IF
Posté par Twidi (Jabber id, page perso, ) le 30/01/2006 à 01:49. (lien). Évalué à 9.C'est bien sur "rang" et pas "ordre"... il s'agit d'un reste de mon test, désolé.
La bonne requête :
SELECT id, IF(rang=0, 1, 0) AS rangnonzero, rang FROM membres order by rangnonzero, rang;
-
[^]Re: IF
Posté par Uld (page perso, ) le 30/01/2006 à 09:05. (lien). Évalué à 2.Génial, merci pour ton aide, ca marche parfaitement.
--
Ubuntu is an ancient african word meaning : "I can't configure Debian".
-
Revenir en haut de page || Retourner aux forums || Retourner au forum


Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.