ORDER BY ...

Nath'
Invité n'ayant pas de compte PHPfrance

09 févr. 2005, 16:38

Salut a tous
voila mon probleme

dans ma table `nom`, j'ai: mtx 0001, avg 0002, sos 0003, ezl 0004.
Les 3 premieres lettres sont générées de maniere aléatoire .

j'aimerais faire ceci:

Code : Tout sélectionner

SELECT nom FROM famille ORDER BY 'les 4 derniers chiffre' ASC
Mais je ne sais pas du tout comment m'y prendre !!!
Savez vous comment je pourrais faire ??

Merci d'avance ![/b]

Mammouth du PHP | 1311 Messages

09 févr. 2005, 16:40

quel est le but?
pourquoi ne pas associer un id a chaque nom?

Mammouth du PHP | 1885 Messages

09 févr. 2005, 18:39

Code : Tout sélectionner

SELECT nom FROM famille ORDER BY RIGHT('nom', 4) ASC
;)

Administrateur PHPfrance
Administrateur PHPfrance | 149 Messages

09 févr. 2005, 21:28

avais-tu une obligation à ne pas séparer ces 2 sous-champs ?

que t'aurais pu relier au select par un concat

ou alors faire un index sur le RIGHT('nom', 4)
--
Moosh - ancêtre de la communauté
http://www.phpfrance.com

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

09 févr. 2005, 23:59

avais-tu une obligation à ne pas séparer ces 2 sous-champs ?
C'est ce que j'ai failli demander sur le forum de Développez, où ce topic a également été posté. (...et a reçu la même réponse, merci à Nath d'avoir utilisé le temps libre de deux personnes pour la même chose)

Le problème avec ORDER BY RIGHT() c'est qu'il nécessite de créer une grosse table temporaire, alors qu'avec un champs séparé l'utilisation du disque serait minime, voire inexistante si ce champs est indexé. [ manuel ]