MYSQL如何自动为查询数据的结果编上序号详解
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,use
千家信息网最后更新 2026年11月01日MYSQL如何自动为查询数据的结果编上序号详解
前言
其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:
SQL:
SELECT (@i:=@i+1) i,user_id,user_name FROM `dt_user_all_orders`, (SELECT @i:=0) as i WHERE user_name='qqqqqqqqqq' LIMIT 0,10;
结果:

如果需要分组后再进行序号显示:
SELECT drug_productor,@y:=@y+1 as num FROM( SELECT drug_productor FROM ts_drug a GROUP BY drug_productor) c,(SELECT @y:=0) d
结果:

分析:
在开始是定义一个变量i,让它每增一条结果是➕1, @i:=1;
这里顺带复习下mysql定义用户变量的方式:select @变量名
对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较操作符
(@i:=@i+1) 也可以写成 @i:=@i+1 ,加括号是为了视觉上看这结构更清楚些。在定义好一个变量后每次查询都会给这个变量自增,而我们每次执行查询语句获取结果后就不需要这个变量自增了,所以要把它重置为0,在表名后用逗号分格下使用 (SELECT @i:=0) as i 就可以了,说下这个as i为什么要这样用,是因为派生表必须需要一个别名,这个就是做它的别名,可以任意字符。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
变量
结果
查询
方式
用户
语句
内容
别名
就是
情况
分析
学习
序号
清楚
价值
前言
同事
命令
字符
括号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司经营范围
互联网属科技
互联网扶贫科技
互联网 科技
互联网公司 科技公司
致聘互联网科技
顺玮阁互联网科技
滨湖区互联网智能科技产品供应
以后互联网后是啥科技
全球顶尖互联网科技公司
哈尔滨屹滨互联网科技有限公司
互联网科技和信息
互联网科技的全部知识
中国互联网有什么科技
浙南科技城互联网大厦招聘
厦门江牛科技互联网
容联科技互联网电商
兰石爱特工业互联网科技分公司
绵阳真晨互联网科技有限公司
互联网科技自媒体灵感
互联网中国科技
科技类互联网
互联网金融 科技
互联网金融 金融科技
有马互联网科技
深圳卡尔迅互联网科技有限公司怎么样
无锡工业互联网科技有限公司
互联网风格科技公司名称
中国新注册互联网科技
互联网科技新闻