MySQL 给数据排序同时追加序号列

本文深入探讨了SQL中复杂的分组与排序技术,包括无分组、单字段分组和多字段分组的实现方法,通过使用变量进行行号标记,实现了数据的有效组织与检索。适用于数据库管理员和高级SQL开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 无分组

    select @rownum:=@rownum+1 as autoSeq,
    sid,pid,oprimary,seq
    from singlechoice,(select @rownum:=0) r
    order by pid,sid
    
  • 单字段分组

    select (@i := case  when  @tableName=a.tablename then @i + 1 else 1 end )  as rowIndex,
    a.*,(@tableName:=a.tablename)
    from tablestyle a,(select @i:=0,@tableName:='') as t
    group by tablename,fieldname
    order by tablename,(@i := case  when  @tableName=a.tablename then @i + 1 else 1 end )
    
  • 多字段分组

    select (@i := case  when  @tableName=concat(a.dbname,a.tablename) then @i + 1 else 1 end )  as rowIndex,
    a.*,(@tableName:=concat(a.dbname,a.tablename)) as temp
    from tablestyle a,(select @i:=0,@tableName:='') as t
    group by dbname,tablename,fieldname
    order by dbname,tablename,(@i := case  when  @tableName=concat(a.dbname,a.tablename) then @i + 1 else 1 end )
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值