按数字排序可以是连字符 - mysql

时间:2015-06-04 10:35:35

标签: mysql sql-order-by

我有一个查询说

select * from table order by numbers asc

数字是:32,-,11,76,-

我得到的是-,-,11,32,76(开头的连字符)

我在查询中如何更改,以便最后得到连字符?

2 个答案:

答案 0 :(得分:2)

首先,我尝试使用类型转换的条件流进行排序

SELECT * FROM `table` ORDER BY numbers = '-', numbers+0 asc

如果你想要反向否定条件流

SELECT * FROM `table` ORDER BY numbers != '-', numbers+0 asc

答案 1 :(得分:1)

您将数字存储为varchar(),当您拥有1,11,9,5...等数据时会遇到更多问题,并且订购时会有1,11,5,9...

以下是如何管理它

select * from table_name 
order by case when numbers ='-' then 2 else 1 end,numbers+0 ;