Tri d'une colonne de type VARCHAR comme le FLOTTEUR à l'aide de l'opérateur de CAST ne fonctionnent pas dans MySQL
Je ne peux pas trouver un moyen de trier une colonne de type varchar se répartit comme flotteur. Voici ma requête SQL:
SELECT guid, number FROM table ORDER BY 'CAST(number AS FLOAT) DESC'
Le "nombre" de la colonne est définie comme ceci:
number varchar(20) ascii_general_ci
Et les valeurs définies dans cette colonne pour mon test sont :
0.00
200.00
20.00
100.00
MySQL ignorer totalement l'opérateur de CAST et de trier les colonnes par un guid...
Est-il un bug dans MySQL ou ai-je fais quelque chose de mal ?
- ^^
ORDER BY 'CAST(number AS FLOAT) DESC'
résultats de la même manière queORDER BY 'foo'
ouORDER BY 'ehrlkherklth ektl k'
. LeORDER BY
dans votre déclaration n'a pas de sens......
Vous devez vous connecter pour publier un commentaire.
Essayez cette astuce (aide à trier les chaînes de caractères comme des numéros)-
Il aidera à MySQL pour lancer chaîne de caractères en nombre.
Une autre solution -
Si vous avez pris GUID, puis la taille doit être
varchar(40)
Place de que vous pouvez utiliser
uuid()
Je l'ai fait à l'aide de
Ça fonctionne. Si ce n'est pas vous voulez pouvez-vous envoyer votre code entier?