Comment faire un ORDER BY SQL où 2 est avant 10 ?
Réponses rédigées par Antoine
Dernière mise à jour : 2022-05-20 12:25:37
Question
Bonjour, lorsque je fais une requête SQL du type SELECT
, avec un ORDER BY
sur une colonne qui contient des chiffres, j'obtiens un classement du type 1, 10, 11, 12 au lieu de 1, 2, 3, 4.
Réponse
Une rustine pour faire un ORDER BY SQL où 2 serait avant 10, consiste à ajouter un 0 :
SELECT * FROM table ORDER BY id + 0 ASC
Remarque : si la colonne id
ne contient bel et bien que des chiffres, vous devriez revoir sa structure et en faire un INT
. C'est parce ce que sa structure n'est pas un INTEGER
que vous avez ce problème d'ordonnancement.