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中concat函数的用法(连接字符串)

    详解MySQL中concat函数的用法(连接字符串)

    本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • CentOS 7搭建多实例MySQL8的详细教程(想要几个搞几个)

    CentOS 7搭建多实例MySQL8的详细教程(想要几个搞几个)

    这篇文章主要介绍了CentOS 7搭建多实例MySQL8的详细教程(想要几个搞几个),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 窥探mysql存储过程细节

    窥探mysql存储过程细节

    这篇文章主要为大家详细介绍了mysql存储过程细节,对mysql存储过程感兴趣的小伙伴们可以参考一下
    2016-03-03
  • MySQL 分库分表实践

    MySQL 分库分表实践

    本文主要介绍了MySQL 分库分表实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • 利用frm和ibd文件恢复mysql表数据的详细过程

    利用frm和ibd文件恢复mysql表数据的详细过程

    总是遇到mysql服务意外断开之后导致mysql服务无法正常运行的情况,使用Navicat工具查看能够看到里面的库和表,但是无法获取数据记录,提示数据表不存在,所以本文给大家介绍了利用frm和ibd文件恢复mysql表数据的详细过程,需要的朋友可以参考下
    2024-04-04
  • mysql闪回工具binlog2sql安装配置教程详解

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

    这篇文章主要介绍了mysql闪回工具binlog2sql安装配置详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 解决MySQL Sending data导致查询很慢问题的方法与思路

    解决MySQL Sending data导致查询很慢问题的方法与思路

    这篇文章主要介绍了解决MySQL Sending data导致查询很慢问题的方法与思路,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • mysql解析json数据组获取数据组所有字段的方法实例

    mysql解析json数据组获取数据组所有字段的方法实例

    mysql在5.7开始支持json解析了,也可以解析数组,下面这篇文章主要给大家介绍了关于mysql解析json数据组获取数据组所有字段的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Centos中安装多个mysql数据的配置实例

    Centos中安装多个mysql数据的配置实例

    最近因为单位项目扩充,需要在原线上数据库服务器上加装一个mysql实例(实际上就是从新编译安装一个非3306的自定义端口,不同目录的mysql),研究了一天,终于顺利搞定,这里把配置步骤发给大家,供大家学习使用
    2014-04-04
  • mysql的XA事务恢复过程详解

    mysql的XA事务恢复过程详解

    XA事务支持限于InnoDB存储引擎,本文将详细介绍mysql的XA事务恢复过程
    2012-11-11

最新评论