MYSQL如何自动为查询数据的结果编上序号详解
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,use
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
公安局网络安全应急演练
lol一进游戏就连不上服务器
高并发短链接服务器优化
怎么查询数据库的列名
网络安全隐患记录
数据库天数怎么算
定州网络安全教育
云服务器的用处
数据库储存怎么
福田区服务器机柜厂商
聘请网络安全第三方机构的请示
数学软件开发概述
视频管理服务器功率
宣传部管理网络安全制度
手机变服务器
个人网络安全的重要性
数据库独立
5G网络软件开发中专
计算机网络安全防控措施
从事软件开发有哪些证书
信息化项目网络安全审查
阜阳门店管理软件开发多少钱
网络安全小课堂手抄报
华盛江泉集团软件开发部门
义乌工业软件开发是做什么的
东莞团贷互联网科技有限公司
河南果蔬软件开发
网络安全人员体系化建设
宁国先进软件开发服务攻略
怀柔区进口软件开发品质保障