首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有混合数据类型的mysql自定义顺序

问具有混合数据类型的mysql自定义顺序
EN

Stack Overflow用户
提问于 2012-11-19 13:23:44
回答 2查看 1.3K关注 0票数 5

在下面的mysql查询中,我使用了一个定制的order语句,这样我就可以按照特定的顺序而不是字母顺序显示各种大小:

代码语言:javascript
复制
select distinct size 
from product p left join productsizes ps 
             on p.productcode = ps.size_prodcode 
order by field(size, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL')

在某些产品也有数字大小的情况下,如何编写订单,以便将数字大小与自定义顺序一起按升序排列?

所需输出的示例:

30、32、34、S、M、L

或

S,M,L,30,32,34

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-19 13:27:24

当找不到搜索字符串时,FIELD()返回0。因此:

代码语言:javascript
复制
ORDER BY FIELD(size, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL'), size
票数 4
EN

Stack Overflow用户

发布于 2012-11-19 13:28:50

试一试

代码语言:javascript
复制
ORDER BY (CASE WHEN sizes REGEXP '(\d)+' THEN 0 ELSE 1 END) ASC,
         field(sizes, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13454715

复制
相关文章

相似问题

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