Requette ORDER BY

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 283
Inscription: 15 Oct 2007

Requette ORDER BY

Message le Dim Sep 05, 2010 18:56

Bonjour,
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)


forty
WRInaute passionné
WRInaute passionné
 
Messages: 1595
Inscription: 30 Oct 2008

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 19:47

La solution c'est peut-être avec UNION -http://dev.mysql.com/doc/refman/5.0/fr/union.html


VeeTouine
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 463
Inscription: 23 Mai 2009

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 20:54

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 :wink:

franckM
WRInaute impliqué
WRInaute impliqué
 
Messages: 509
Inscription: 15 Nov 2007

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 21:06

Bonsoir,

il faut rajouter un champ id à ta table en rangeant dans cet ordre:
TYPE ... id
studio ... 1
f1 ... 2
f2 ... 3
... ...

et faire ta requête avec "order by id"

franckM
WRInaute impliqué
WRInaute impliqué
 
Messages: 509
Inscription: 15 Nov 2007

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 21:07

Oups... :oops: désolé Veetouine tu avais déjà répondu...


VeeTouine
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 463
Inscription: 23 Mai 2009

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 21:42

Au moins ça conforte mon idée :wink:

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 283
Inscription: 15 Oct 2007

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 21:43

en fait j'ai trouvé une autre solution qui permet de faire le tri depuis a requete.

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
WRInaute discret
 
Messages: 219
Inscription: 3 Mar 2007

Re: Requette ORDER BY

Message le Dim Sep 05, 2010 23:18

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)!


Aaarrrgggh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 394
Inscription: 16 Mar 2009

Re: Requette ORDER BY

Message le Lun Sep 06, 2010 7:15

Le mieux est de faire une table relationnelle comme cité plus haut, ou éventuellement un tableau externe en php.

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 283
Inscription: 15 Oct 2007

Re: Requette ORDER BY

Message le Lun Sep 06, 2010 9:15

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.

franckM
WRInaute impliqué
WRInaute impliqué
 
Messages: 509
Inscription: 15 Nov 2007

Re: Requette ORDER BY

Message le Lun Sep 06, 2010 9:45

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...

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 283
Inscription: 15 Oct 2007

Re: Requette ORDER BY

Message le Lun Sep 06, 2010 9:54

là n'est pas la question mais je n'y ai pas accès c'est parce que je ne suis pas chez moi et que je n'ai pas les codes pour y accéder a mysql dans l'immédiat pour ajouter des champs ou autres.


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