MYSQL查询行内号

oracle查询行内号可以用 row_number() voer(partition by xxx order by xxx)
后来改用mysql发现没有这个函数,从网上查询后发现可以这样写:

--  行内号         group by的暂存值
SET @row_number=0, @customer_no=0;
SELECT
--  如果与上一个相同 行内号+1
    @row_number:=CASE
        WHEN @customer_no = s.age THEN @row_number + 1 
        ELSE 1 --否则从1开始
    END AS num,
    @customer_no:=s.age AS stu_age, --对group by 的内容赋值
    s.id, 
    s.name 
FROM
    student s
ORDER BY
    s.age; -- 注意要用group by的内容去排序 才能保证行内号的取值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值