MYSQL如何自动为查询数据的结果编上序号详解
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,use
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
农业数据库有哪几个
html模板怎么运行在服务器上
如何运行服务器安全
网络安全启动视频
数据库的题目在哪可以搜
软件开发管理体系适用标准
网络安全原理与实践pdf
服务器一直掉线
查看邮件服务器地址
济南鲁能软件开发
网络安全日微视频
我的世界怎么用服务器玩躲猫猫
戴尔服务器恢复显卡驱动
软件开发app模型
储存数据服务器销售方案
开票服务器管理系统日期选择不
服务器冷却液a股
cas 连接数据库
均益网络技术有限公司
4G网络技术小说
在数据库技术中 数据库系统
有关网络安全问题
软件开发 考核压力大
调整oracle数据库空间大小
刀剑神域黑衣剑士王牌服务器大全
群晖显示服务器已满
服务器0口
多大的云服务器可以架设传奇
如何保护数据网络安全
域名服务器查询