我有一张产品表。
他们的身份对于母亲来说是12345,对于孩子来说是12345_1,12345_2 ......
我想对他们进行排序,以便让母亲为desc,然后是孩子asc:
12345
12345_1
12345_2
12345_3
12345_4
12344
12344_1
12344_2
12344_3
12344_4
12340
12340_1
12340_2
12340_3
12340_4
我如何根据条款构建我的订单?
非常感谢
答案 0 :(得分:0)
您可以使用SUBSTRING_INDEX
来确定下划线前后的部分:
ORDER BY SUBSTRING_INDEX(id, '_', 1) DESC,
IF(LOCATE('_', id), SUBSTRING_INDEX(id, '_', -1), '') ASC
答案 1 :(得分:0)
这适用于您的样本数据集:
select your_column
from your_table
order by cast(substring_index(your_column,'_',1) as signed integer) desc,
your_column asc