Effectuer le tri des données
Résolu
Nicodoss
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
Nicodoss Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Nicodoss Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
J'ai une liste d'objectifs de cours avec des en-têtes comme:
En supposant une table titre(idtitre [numeric autoincrement], numtitre[varchar], nomtitre[varchar]) avec numtitre suivant l'ordre ci-dessous;
1.0
1.1
1.1.1
1.1.2
2.0
2.1
10
10.1
11
11.1
Mais lorsque je fais un order by numtitre j'ai pas l'ordre qu'il me faut.
J'obtiens ceci
1.0
1.1
1.1.1
1.1.2
10
10.1
11
11.1
2.0
2.1
etc........
Si vous avez des idées merci de vraiment m'aider
En supposant une table titre(idtitre [numeric autoincrement], numtitre[varchar], nomtitre[varchar]) avec numtitre suivant l'ordre ci-dessous;
1.0
1.1
1.1.1
1.1.2
2.0
2.1
10
10.1
11
11.1
Mais lorsque je fais un order by numtitre j'ai pas l'ordre qu'il me faut.
J'obtiens ceci
1.0
1.1
1.1.1
1.1.2
10
10.1
11
11.1
2.0
2.1
etc........
Si vous avez des idées merci de vraiment m'aider
A voir également:
- Effectuer le tri des données
- Fuite données maif - Guide
- Trier des données excel - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Logiciel tri photo - Guide
- Sauvegarde des données - Guide
3 réponses
Et en essayant un truc du style :
ORDER BY ( SUBSTRING_INDEX(numtitre,'.',1) *1000 + SUBSTRING_INDEX(SUBSTRING_INDEX(numtitre,'.',2),'.',-1) * 100 + SUBSTRING_INDEX(SUBSTRING_INDEX(numtitre,'.',3),'.',-1) * 10)
Bonjour,
Je pense qu'en jouant avec du substring_index pour trier par le premier nombre, puis le second, puis le troisieme devrait fonctionner.
NB: Je ne suis descendu qu'à trois niveaux.
Je pense qu'en jouant avec du substring_index pour trier par le premier nombre, puis le second, puis le troisieme devrait fonctionner.
SELECT * FROM titre ORDER BY SUBSTRING_INDEX(numtitre,'.',1) , SUBSTRING_INDEX(SUBSTRING_INDEX(numtitre,'.',2),'.',-1) , SUBSTRING_INDEX(SUBSTRING_INDEX(numtitre,'.',3),'.',-1)
NB: Je ne suis descendu qu'à trois niveaux.