sql >> Databasteknik >  >> RDS >> Mysql

SQL ordersträng som nummer

Om möjligt bör du ändra kolumnens datatyp till ett nummer om du ändå bara lagrar nummer.

Om du inte kan göra det, cast ditt kolumnvärde till ett integer explicit med

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

eller implicit till exempel med en matematisk operation som tvingar fram en konvertering till tal

select col from yourtable
order by col + 0

BTW MySQL konverterar strängar från vänster till höger. Exempel:

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 */


  1. Hur man får information om kompileringsfel i Oracle/TOAD

  2. Sätt första bokstaven med stor bokstav. MySQL

  3. Hur man ersätter MySQL med Percona på Plesk CentOS 7

  4. Hitta aktuella lediga jobb för Oracle Forms &Reports