Requette ORDER BY
12 messages
• Page 1 sur 1
- fabrice88
- WRInaute occasionnel

- Messages: 283
- Inscription: 15 Oct 2007
Requette ORDER BY
Bonjour,
j'ai un requete :
je voudrai choisir l'ordre de type pour l'affichage.
C'est a dire type contiend ces valeurs : studios, f1, f2, f3,...., garage,...
comment dans ma requette dire que je veu en premier par exemple studios , puis en 2 f1, puis ..... au lieu du desc qui classe par ordre croissant ou decroissant (asc ou desc)
j'ai un requete :
- Code: Tout sélectionner
SELECT * FROM IWlocations ORDER BY type DESC, prix ASC
je voudrai choisir l'ordre de type pour l'affichage.
C'est a dire type contiend ces valeurs : studios, f1, f2, f3,...., garage,...
comment dans ma requette dire que je veu en premier par exemple studios , puis en 2 f1, puis ..... au lieu du desc qui classe par ordre croissant ou decroissant (asc ou desc)
-

VeeTouine - WRInaute occasionnel

- Messages: 463
- Inscription: 23 Mai 2009
Re: Requette ORDER BY
En gros tu veux trier par taille de bien, au sens figuré dirons nous.
Je ne vois pas comment un langage (ici sql) peut savoir qu'un studio est plus petit qu'un f1 qui est plus petit qu'un f3.
A mon avis si tu veux faire un tri dans ce sens, tu ajoutes un champ à ta table et tu tries ce champ par ordre croissant par exemple.
type | ordre
studio | 1
f1 | 2
f2 | 3
f3 | 4
Select type from ma_table order by ordre
Ptet que les experts auront une autre solution
Je ne vois pas comment un langage (ici sql) peut savoir qu'un studio est plus petit qu'un f1 qui est plus petit qu'un f3.
A mon avis si tu veux faire un tri dans ce sens, tu ajoutes un champ à ta table et tu tries ce champ par ordre croissant par exemple.
type | ordre
studio | 1
f1 | 2
f2 | 3
f3 | 4
Select type from ma_table order by ordre
Ptet que les experts auront une autre solution
- fabrice88
- WRInaute occasionnel

- Messages: 283
- Inscription: 15 Oct 2007
Re: Requette ORDER BY
en fait j'ai trouvé une autre solution qui permet de faire le tri depuis a requete.
voici comment je fais :
Si sa peut aider...
voici comment je fais :
- Code: Tout sélectionner
SELECT CASE WHEN type = 'Studio' THEN 1 WHEN type = 'F1' THEN 2 WHEN type = 'F2' THEN 3...... END AS tri, type, prix, ..... FROM IWlocations ORDER BY tri, prix DESC
Si sa peut aider...
- jamalofski
- WRInaute discret

- Messages: 219
- Inscription: 3 Mar 2007
Re: Requette ORDER BY
VeeTouine et franckM te proposent LA SOLUTION et tu préfères jouer avec le CASE dans le select!!
Bonjour les performances et surtout le code maintenable! Imaginons, un jour tu ajoutes une nouvelle catégorie F55, avec la solution proposées, t'auras à ajouter une ligne dans une table! Avec ta solution du dois réécrire ta requête (si jamais tu te rappelles qu'il faudra la réécrire)!
Bonjour les performances et surtout le code maintenable! Imaginons, un jour tu ajoutes une nouvelle catégorie F55, avec la solution proposées, t'auras à ajouter une ligne dans une table! Avec ta solution du dois réécrire ta requête (si jamais tu te rappelles qu'il faudra la réécrire)!
-

Aaarrrgggh - WRInaute occasionnel

- Messages: 394
- Inscription: 16 Mar 2009
Re: Requette ORDER BY
Le mieux est de faire une table relationnelle comme cité plus haut, ou éventuellement un tableau externe en php.
- franckM
- WRInaute impliqué

- Messages: 509
- Inscription: 15 Nov 2007
Re: Requette ORDER BY
fabrice88 a écrit:pourquoi bonjour les performances ?
là c'est la solution que j'avais le plus facilement a mettre en place vue que je n'ai pas encore accès a la base.
Comment travailler sur PHP avec des requêtes sur une base sans avoir accès à celle ci ? c'est trop galère...
12 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google écrit parfois au webmaster en cas de blacklistage - 16-09-2005
- Live Search bannit certains sites qui échangent des liens - 20-11-2006
- 2 nouvelles astuces pour être bien visible dans Google News - 14-12-2007
- Quiz référencement : algorithmes des moteurs - 07-09-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


