在下面的mysql查询中,我使用了一个定制的order语句,这样我就可以按照特定的顺序而不是字母顺序显示各种大小:
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
发布于 2012-11-19 13:27:24
当找不到搜索字符串时,FIELD()返回0。因此:
ORDER BY FIELD(size, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL'), size发布于 2012-11-19 13:28:50
试一试
ORDER BY (CASE WHEN sizes REGEXP '(\d)+' THEN 0 ELSE 1 END) ASC,
field(sizes, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL')https://stackoverflow.com/questions/13454715
复制相似问题