Mysql给普通分页查询结果加序号实操

 更新时间:2022年09月21日 10:45:44   作者:李长渊哦  
这篇文章主要介绍了Mysql给普通分页查询结果加序号实操,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

一、效果展示

1、普通查询加序号

SELECT t1.NAME,( @i := @i + 1 ) AS '序号' 
FROM t1,( SELECT @i := 0 ) AS itable;

这种情况遇上分页时会出现每次翻页都从1开始重新计算,这种情况可以使用分页偏移量作为开始计算数,解决方案如下:

2、分页查询加序号

SELECT ( @i := @i + 1 ) AS '序号' ,t1.NAME
FROM t1,( SELECT @i := 2 ) AS itable
limit 2,5
SELECT ( @i := @i + 1 ) AS '序号' ,t1.NAME
FROM t1,( SELECT @i := #{startSize} ) AS itable
limit #{startSize},#{pageSize};

二、表结构以及数据

CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `jgid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (1, '二二', 2);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (2, '李四', 2);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (4, '七七', 3);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (5, '小猕猴', 1);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (6, '小米粥', 1);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (7, '小哈吧', 1);

三、解释说明

1、解释

  • (@i:=@i+1) 也可以写成 @i:=@i+1 ,加括号是为了视觉上更清晰。它代表的意思是:变量i 加1 赋值给变量i,在定义好一个变量后每次查询都会给这个变量自增,每次执行查询语句获取结果后就不需要这个变量自增了
  • (SELECT @i:=0) AS itable,定义用户变量i,设置初始值为0,然后将它作为派生表使用,AS定义了表的别名。
  • SET @i=0 。定义用户变量i,赋初值为0,

2、相关知识点

  • MySQL定义用户变量的方式:select @变量名 ,上面的SQL语句中,变量的名字是 i
  • 用户变量赋值:一种是直接用"=“号,另一种是用”:="号。

3、= 和 := 的区别:

使用set命令对用户变量进行赋值时,两种方式都可以使用
即:SET @变量名=xxx 或 SET @变量名:=xxx

使用select语句对用户变量进行赋值时,只能使用":=“方式,因为在select语句中,”="号被看作是比较操作符。即:SELECT @变量名:=xxx

  • ①:用户变量
  • ②:派生表
  • ③:AS设置别名

到此这篇关于Mysql给普通分页查询结果加序号实操的文章就介绍到这了,更多相关Mysql分页查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL触发器的使用场景及方法实例

    MySQL触发器的使用场景及方法实例

    这篇文章主要给大家介绍了关于MySQL触发器的使用场景及方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 基于MySQL的存储引擎与日志说明(全面讲解)

    基于MySQL的存储引擎与日志说明(全面讲解)

    下面小编就为大家分享一篇基于MySQL的存储引擎与日志说明(全面讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • MySQL命令行删除表中的一个字段

    MySQL命令行删除表中的一个字段

    本文介绍在MySQL数据库中,如何根据字段名来删除表中的一个字段,需要的朋友可以参考下
    2016-04-04
  • Suse Linux 10中MySql安装与配置步骤

    Suse Linux 10中MySql安装与配置步骤

    这篇文章主要介绍了Suse Linux 10中MySql安装与配置步骤,本文详细的讲解了安装步骤,需要的朋友可以参考下
    2015-05-05
  • MySql8 WITH RECURSIVE递归查询父子集的方法

    MySql8 WITH RECURSIVE递归查询父子集的方法

    这篇文章主要介绍了MySql8 WITH RECURSIVE递归查询父子集的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Mysql 5.7.17 winx64在win7上的安装教程

    Mysql 5.7.17 winx64在win7上的安装教程

    本文给大家介绍Mysql 5.7.17 winx64在win7上的安装教程,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-04-04
  • MySQL数据库如何给表设置约束详解

    MySQL数据库如何给表设置约束详解

    约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除,本篇文章教你如何给表设置约束
    2022-03-03
  • Mysql中replace与replace into的用法讲解

    Mysql中replace与replace into的用法讲解

    今天小编就为大家分享一篇关于Mysql中replace与replace into的用法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL中的主键以及设置其自增的用法教程

    MySQL中的主键以及设置其自增的用法教程

    这篇文章主要介绍了MySQL中的主键以及设置其自增的用法教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • 一文了解MYSQL三大范式和表约束

    一文了解MYSQL三大范式和表约束

    范式是"符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度",下面这篇文章主要给大家介绍了关于MYSQL三大范式和表约束的相关资料,需要的朋友可以参考下
    2022-04-04

最新评论