2009-06-26 5 views
3
10.12.1 
10.12.10 
10.12.11 
10.12.12 
10.12.13 
10.12.14 
10.12.15 
10.12.16 
10.12.17 
10.12.18 
10.12.19 
10.12.2 
10.12.3 
10.12.4 
10.12.5 
10.12.6 
10.12.7 
10.12.8 
10.12.9 

Ceci est une colonne varchar. Mais '10 .12.19 'est le maximum de données dont j'ai besoin. Comment puis-je l'avoir?comment obtenir les données max en utilisant le tri naturel?

Répondre

4

code SQL

ORDER BY CAST(SUBSTRING_INDEX(col,'.',-1) AS SIGNED) DESC; 
+0

Si les données ont été modifiées pour inclure 10.13.1, cette instruction ne fonctionnerait plus comme requis. Ce n'est pas une solution générale au problème, en d'autres termes. –

0

MySQL n'a pas encore une sorte naturelle. Il a été une demande de fonctionnalité ouverte depuis 2003: http://bugs.mysql.com/bug.php?id=1588

Je le ferais en dehors de SQL, ou modifier les valeurs (ou ajouter une nouvelle colonne) de sorte que les chiffres ont une largeur fixe.

Questions connexes