2011-10-17 3 views
0

Je me demande s'il existe un moyen de faire un tri numérique lorsque le nombre est une chaîne. Jetez un oeil à exemple:Numérique trier les valeurs en tant que chaînes dans MySQL

La requête:

SELECT * FROM t_tables t commande par id_string asc

Voici la liste de DB:

13 
4 
6 
8 
10 
1 
3 
2 
5 
12 
7 
9 
11 

J'ai besoin pour l'extraire de la manière suivante:

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 

Mais comme résultat que j'obtiens ceci:

1 
10 
11 
12 
13 
2 
3 
4 
5 
6 
7 
8 
9 

Répondre

2

Si vous savez que vous avez toujours des valeurs numériques dans la colonne que vous pouvez utiliser l'opérateur CAST(). Jetez également un coup d'oeil à ce question.

SELECT * FROM t_tables t ORDER BY CAST(id_string AS UNSIGNED) ASC 
+0

Merci, fonctionne parfaitement – Denees

1

Hope it helps:

SELECT * FROM t_tables t order by cast(id_string as unsigned) 
2
SELECT * FROM t_tables t order by cast(id_string as signed integer) asc; 
Questions connexes