Problème de tri A à L, M à Z,... - SQL/NoSQL - Programmation
Marsh Posté le 21-01-2008 à 10:33:27
rien à voir avec ton tri (order) c'est ton where qui pose problème.
ton between est strictement équivalent à:
Code :
|
Il s'avère que tous les noms qui commencent par Z sont supérieurs à Z.
Par exemple: 'Zorro' > 'Z'
Marsh Posté le 21-01-2008 à 10:45:38
faut utiliser une fonction genre left(chaine, longueur) :
upper(left(nom, 1)) between 'M' and 'Z'
(sauf qu'il faut que tu traduises en MySQL, là c'est des noms de fonctions Oracle)
Marsh Posté le 21-01-2008 à 13:47:26
J'ai résolu le problème mais c'est un peu moche . Voilà ce que ça donne :
Code :
|
Donc si j'ai un nom qui commence pas Zza..., il ne sera pas pris en compte mais c'est peu probable que je tombe dessus . Et au pire je pourrais mettre AND 'Zzz'.
C'est clair c'est pas très beau mais c'est la manière la plus simple que j'ai trouvé.
Merci beaucoup de m'avoir aiguillé !
Marsh Posté le 21-01-2008 à 13:52:49
C'est nul comme solution.
En plus, à priori tu auras le même problème avec le A-L, si tu as quelqu'un dont le nom débute par un L, il ne sera dans aucune des deux listes.
Utilise plutôt la solution de MagicBuzz, à savoir comparer la première lettre du nom uniquement.
Marsh Posté le 21-01-2008 à 14:08:43
A la limite, comme solution naze, autant en utiliser une propre :
A-L : where nom < 'M'
M-Z : where nom >= 'M'
Marsh Posté le 21-01-2008 à 14:24:49
OK ça marche la solution de MagicBuzz et effectivement c'est plus simple
Merci beaucoup
Marsh Posté le 21-01-2008 à 02:32:30
Bonjour,
je fais un tri avec une requête MySql mais il y a un problème. Le tri est du style :
Quand je trie mon champ de A à L par exemple, je n'ai que les résultats de A à K et non jusqu'à L.
Pour remédier à ce problème, je trie de A à M et ça marche.
Mais là où ça bloque c'est quand je veux trier de M à Z, le tri s'effectue jusqu'à Y et pas Z. Et là pour remédier à ce problème, je cherche toujours la solution car je ne peux pas trier de M à A ou de M à zéro.
Quelqu'un a une solution pour que j'obtienne tous mes résultats pour le dernier tri ?
Merci
Max