我有这个SQL查询:
SELECT * FROM `Fac__Invoice` ORDER BY `Fac__Invoice`.`invoice_number` ASC
结果是这张表:
问题是数字10在1之后。它应该在9之后。这是因为invoice_number是varchar。我故意选择varchar,因为我想存储数字,例如“FA001”。
你能编写一个sql查询,以便将invoice_number 10放在9下吗? 或者还有其他解决方案吗?
答案 0 :(得分:1)
尝试将值解析为unsigned:
SELECT * FROM `Fac__Invoice` ORDER BY CAST(`Fac__Invoice`.`invoice_number` AS UNSIGNED) ASC