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跨服务器同步数据详细过程,需要的朋友可以参考下
    2014-03-03
  • mysql mysqldump数据备份和增量备份

    mysql mysqldump数据备份和增量备份

    本篇文章主要讲如何使用shell实现mysql全量,增量备份,还可以按时间备份。
    2013-10-10
  • MySQL为数据表建立索引的原则详解

    MySQL为数据表建立索引的原则详解

    这篇文章主要为大家详细介绍了MySQL为数据表建立索引的原则,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • mysql闪回工具binlog2sql安装配置教程详解

    mysql闪回工具binlog2sql安装配置教程详解

    这篇文章主要介绍了mysql闪回工具binlog2sql安装配置详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • mysql从一张表查询批量数据并插入到另一表中的完整实例

    mysql从一张表查询批量数据并插入到另一表中的完整实例

    这篇文章主要给大家介绍了关于mysql从一张表查询批量数据并插入到另一表中的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • mysql存储过程 返回 list结果集方式

    mysql存储过程 返回 list结果集方式

    这篇文章主要介绍了mysql存储过程 返回 list结果集方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • MySQL排序与分页讲解

    MySQL排序与分页讲解

    这篇文章主要介绍了MySQL排序与分页讲解,使用 ORDER BY 对查询到的数据进行排序操作,按照dept_id的降序排列,salary的升序排列相关展开文章,需要的小伙伴可以参考一下
    2022-01-01
  • mysql外连接与内连接查询的不同之处

    mysql外连接与内连接查询的不同之处

    在关系型数据库中,我们经常是把数据存储到多个相互关联的表中,这些相互关联的表通过指定的列发生联系,下面这篇文章主要给大家介绍了关于mysql外连接与内连接查询的不同之处,需要的朋友可以参考下
    2021-06-06
  • MySQL 8忘记密码的最佳处理方式浅析

    MySQL 8忘记密码的最佳处理方式浅析

    这篇文章主要给大家介绍了关于MySQL 8忘记密码的处理方式,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • MySQL数据库学习之查询操作详解

    MySQL数据库学习之查询操作详解

    这篇文章主要为大家详细介绍一下MySQL数据库中一些查询操作,文中的示例代码讲解详细,对我们学习MySQL有一定帮助,需要的可以参考一下
    2022-07-07

最新评论