mysql字符数字组合进行排序

需求:

有张课程表,等级,课程,页码是一个字符串,例如:L1-L10-P3,直接order by达不到想要的效果,如实写出如下sql语句。

SELECT
SUBSTRING(ld.page_no , 2 , 1) ,
SUBSTRING_INDEX(
    SUBSTRING_INDEX(ld.page_no , "-l" ,- 1) ,
    "-p" ,
    1
    ) ,
SUBSTRING_INDEX(
    SUBSTRING_INDEX(ld.page_no , "-p" ,- 1) ,
    "-p" ,
    1
    ) ,
ld.*
FROM
lesson_data ld
ORDER BY
CAST(
    SUBSTRING(ld.page_no , 2 , 1) AS DECIMAL
    ) ASC ,
CAST(
    SUBSTRING_INDEX(
        SUBSTRING_INDEX(ld.page_no , "-l" ,- 1) ,
        "-p" ,
        1
        ) AS DECIMAL
    ) ASC ,
CAST(
    SUBSTRING_INDEX(
        SUBSTRING_INDEX(ld.page_no , "-p" ,- 1) ,
        "-p" ,
        1
        ) AS DECIMAL
    ) ASC;

最后效果,注意看page_no那一行:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值