MYSQL如何自动为查询数据的结果编上序号详解
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,use
千家信息网最后更新 2024年10月18日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安全错误
数据库的锁怎样保障安全
国产积木数据库
网络道德与网络安全论文摘要咋写
万塔云软件服务器在哪里
发酵罐设计软件开发
安腾服务器安全性
青海小程序软件开发
数字货币破译数据库
小众网络安全就业前景
鼓楼区网络技术服务专业服务
猎豹加速器连接谷歌服务器
中国网络技术大学官网
江阴华硕服务器维修电话
服务器大小的基本单位是
ftp服务器下载文件的五个步骤
数据库识别大全
菲律宾招聘网络安全
数据库的密码是多少
低代码平台软件开发
日本神仙服务器
云服务器搭建棋牌教程
北京华为服务器虚拟化解决方案
数据库 字符串个数
sql语言服务器是什么意思
物联网客户端软件开发
乌克兰游戏用什么服务器
如何停止使用当前的数据库
玉溪新华互联网科技选哪家
软件开发部经理招聘
二维表是数据库表
国家电网网络安全小组