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为什么要这样用,是因为派生表必须需要一个别名,这个就是做它的别名,可以任意字符。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
MySQL rownumber SQL生成自增长序号使用介绍
下面介绍几种具体的实现方法. 建立实验环境如下mysql> create table tbl ( -> id int primary key, -> col int -> );Query OK, 0 rows affected (0.08 sec) mysql> insert into tbl values -> (1,26), -> (2,46), -> (3,35), -> (4,68
-
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 a
-
MySQL自动为查询数据结果加序号
目录 数据表 MySQL给查询加序号 解释说明 相关知识点 数据表 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL COMMENT '用户id', subject VARCHAR(20) COMMENT '科目', score DOUBLE COMMENT '成绩', PRIMARY KEY(id) )ENGI
-
MySQL学习必备条件查询数据
目录 一.条件查询 二.比较运算符 三.逻辑运算符 四.范围查询 五.空判断 六.模糊查询 七.优先级 一.条件查询 利用where语句可以对数据进行筛选 select * from 表名 where 条件; 二.比较运算符 运算符 描述 例子 = 等于 where id = 1 \> 大于 where age > 10 < 小于 where age < 10 >= 大于等于 where age >= 10 <= 小于等于 where ag
-
MySQL触发器自动智能化的数据维护
目录 触发器介绍 触发器的特性 触发器语法 数据准备 创建触发器 触发器——执行多个触发语句 New Old 操作 查看触发器 删除触发器 总结 触发器介绍 触发器,就是一种特殊的存储过程.触发器和存储过程一样是一个能够完成特定功能.存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动条用. 在MySQL中,只有执行insert,delete,update操作时才能触发触发器的执行 触发器的这种特性可以协助应用在数据库端
-
MySQL数据备份之mysqldump的使用详解
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句. B. --opt 如果加上--opt参数则生成的du
-
Mysql系列SQL查询语句书写顺序及执行顺序详解
目录 1.一个完整SQL查询语句的书写顺序 2.一个完整的SQL语句执行顺序 3.关于select和having执行顺序谁前谁后的说明 1.一个完整SQL查询语句的书写顺序 -- "mysql语句编写顺序" 1 select distinct * 2 from 表(或结果集) 3 where - 4 group by -having- 5 order by - 6 limit start,count -- 注:1.2属于最基本语句,必须含有. -- 注:1.2可以与3.4.5.6中任一
-
mybatis实现对数据的增删查改实例详解
前期准备 新建java工程或java wweb工程,需要导入以下的包, 基本工作已经完成,接下来开始进入正题. 新建实体类 新建与数据库表对应的实体类 package com.edu.hpu.domain; /** * @author Administrator *user表所对应的实体类 */ public class User { //实体类的属性和表的字段名称一一对应 private int id; private String name; private int age; //对属性进行
-
Mysql数据库事务的脏读幻读及不可重复读详解
目录 一.什么是数据库事务 二.事务的ACID原则 1. 原子性(Atomicity) 2. 一致性(Consistency) 3. 持久性(Durability) 4. 隔离性(Isolation) 三.隔离带来的问题 1. 脏读 2. 不可重复读 3.幻读 四.手动测试下事务的过程 一.什么是数据库事务 数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位.事务由事务开始与事务结束之间执行的全部数
-
MySQL null与not null和null与空值''''的区别详解
相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 我字段类型是not null,为什么我可以插入空值 为毛not null的效率比null高 判断字段不为空的时候,到底要 select * from table where column <> '' 还是要用 select * from table wherecolumn is not null 呢. 带着上面几个疑问,我们来深入研究一下null 和 not null 到底有什么不一样. 首先,我们要搞清楚
-
MySql分表、分库、分片和分区知识深入详解
一.前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈.需要进行数据的处理,采用的手段是分区.分片.分库.分表. 二.分片(类似分库) 分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题.Shard这个词的意思是"碎片".如果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片(DatabaseShard).将整个数据库打碎的过程就叫做分片,可以
随机推荐
- 浅谈Linux的库文件
- 使用JavaScript实现连续滚动字幕效果的方法
- 一个PHP操作Access类(PHP+ODBC+Access)
- [教程+分享]具有良好体验度的Web注册系统
- C# 判断字符为空的6种方法的效率实测对比
- java中判断字段真实长度的实例(中文2个字符,英文1个字符)
- 广告放在文章页左上角的解决办法二
- javascript 弹出层居中效果的制作
- jQuery实现遮罩层登录对话框
- JS实现动态增加和删除li标签行的实例代码
- JS处理VBArray的函数使用说明
- 不提示直接关闭网页窗口的JS示例代码
- 让浏览器非阻塞加载javascript的几种方法小结
- Java--Socket通信(客户端服务端双向)
- android获取手机唯一标识的方法
- 如何使用FSO搜索硬盘文件
- 禁止弹窗中蒙层底部页面跟随滚动的几种方法
- python如何查看微信消息撤回
- 详解易语言字节集动态加密
- django admin.py 外键,反向查询的实例