Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Bestellzeichenfolge als Zahl

Wenn Sie ohnehin nur Zahlen speichern, sollten Sie den Datentyp der Spalte nach Möglichkeit auf eine Zahl ändern.

Wenn Sie das nicht tun können, wandeln Sie Ihren Spaltenwert in eine integer um ausdrücklich mit

select col from yourtable
order by cast(col as unsigned)

oder implizit zum Beispiel mit einer mathematischen Operation, die eine Umwandlung in die Zahl

erzwingt
select col from yourtable
order by col + 0

Übrigens konvertiert MySQL Strings von links nach rechts. Beispiele:

string value  |  integer value after conversion
--------------+--------------------------------
'1'           |  1
'ABC'         |  0   /* the string does not contain a number, so the result is 0 */
'123miles'    |  123 
'$123'        |  0   /* the left side of the string does not start with a number */