首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql中将varchar列排序为数字,底部为空值

在mysql中将varchar列排序为数字,底部为空值
EN

Stack Overflow用户
提问于 2013-08-06 07:45:34
回答 1查看 384关注 0票数 0

我正在尝试对mysql查询中的列进行排序,该列的类型为varchar,但可能/可能没有数值。

代码语言:javascript
复制
for example it may have the values

2012-10
2012-41
2012-1

which should be sorted as follows:
2012-1
2012-10
2012-41

but if the values are :
M-1
M-13
M-5

it should be sorted as :
M-1
M-5
M-13

and if null values are present it should be last.

不知道这是否可能。请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-06 07:53:47

如果要按连字符后面的数字排序,请使用以下命令:

代码语言:javascript
复制
ORDER BY column IS NOT NULL, SUBSTRING_INDEX(column, '-', 1), CAST(SUBSTRING_INDEX(column, '-', 2) AS DECIMAL)

column IS NOT NULL对空列进行最后排序,CAST()表达式按数字对其余列进行排序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18074423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档