sql >> Databáze >  >> RDS >> Mysql

Řetězec objednávky SQL jako číslo

Pokud je to možné, měli byste změnit datový typ sloupce na číslo, pokud přesto ukládáte pouze čísla.

Pokud to nemůžete udělat, přeneste hodnotu sloupce na integer explicitně s

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

nebo implicitně například s matematickou operací, která vynutí převod na číslo

select col from yourtable
order by col + 0

BTW MySQL převádí řetězce zleva doprava. Příklady:

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. #1139 - Z regulárního výrazu se vyskytla chyba 'repetition-operator operand invalid'

  2. Escape řetězec v SQL Server, takže je bezpečné použít ve výrazu LIKE

  3. Je jeden příkaz SQL Server atomický a konzistentní?

  4. Import souborů do Oracle Apex pomocí wwv_flow_files