首页
学习
活动
专区
圈层
工具
发布

Mysql查询某条记录在分页的第几页

实践中我们会遇到这样的问题,知道某条记录的id,然后需要判断此条记录如果按照id进行排序分页,此条记录在第几页。今天这篇文章为大家提供一个思路。...根据ID查询分页位置 根据ID来查询分页位置,比如按照ID的倒序排列,则可通过以下SQL查询出大于此ID记录数: select count(id) from user where id > 5; 示例中...count = 11; // 计算当前记录所在的pageNum // 通过取模并加1获得当前页数为第2页 int pageNum = count/pageSize + 1; // 如果想进一步获得在某页的某个位置...,则再进行取余即可,即第2页的第1条记录(从0开始) int index = count%pageSize; 多维度排序定位 上面通过简单的ID进行排序还是比较好解决的,那么如果现在查询某条记录排序的维度不仅仅是...基本的sql语句如下: select id, age from user order by age desc,id desc; 此时我们知道某条id为5,age为18的记录,如何确定出此条记录在多条件排序中的位置呢

3.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 子查询 嵌套查询

    MySQL 子查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 [NOT] IN (SELECT 语句); 二、带EXISTS关键字的查询 意思就是内层的select查到了(至少查到了一行)才进行查询...,没有查到就不进行查询。...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)

    17.7K40

    MySQL(联合查询、子查询、分页查询)

    目录 联合查询 子查询 分页查询 联合查询 联合查询是指将多个查询结果合并成一个结果集(二维表),通常出现在统计分析中。 语法: 查询语句1 UNION 查询语句2 UNION ......查询语句N 注意: 1.所有查询语句的返回结果的列数必须相等 2.每列的数据类型必须一致,【查询语句1中字段列表的类型必须和查询语句2中的字段列表类型对应且一致】 代码实例: SELECT user_id...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...按出现位置分: 1、 SELECT 后面:只能出现标量子查询 2、 FROM 后面:表子查询(查询结果必须起别名) 3、 WHERE|HAVING:支持标量子查询,列子查询,行子查询 4、 EXISTS...后面:支持表子查询 代码实例: 查询订单信息,并显示用户姓名 SELECT a.

    22.1K20

    MySQL高级查询

    select *,row_number() over(order by 主键列) as myid from 表 ) as temp  where myid between 起始号码 and 每页数据量 --mysql...加快数据访问速度 临时表存在于系统数据库 SQL Sever :    存在于系统数据库tempdb  #表名:局部临时表:       只对当前会话有效  ##表名:全局临时表       所有会话共享 MySQL...:  在会话断开销毁  所有临时表都是服务于当前连接    临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。...在mysql中是一个摆设 select *; select * from dual; select * from dual;  报错 oracle中 必须使用 from dual; select *...:::查询条件为时 (结论:子查询应用范围更广)  一个查询中又包含了另一个查询,一般来说,子查询会使用()扩起来,并且小括号内的检索结果会作为外层查询的条件存在  比较运算符 只能投影一列

    3.8K90

    MySQL查询优化

    数据库MySQL是web应用的组成部分,也是决定其性能的重要部分。所以提升MySQL的性能至关重要。      MySQL性能的提升可分为三部分,包括硬件、网络、软件。...软件又细分为很多种,在这里我们通过MySQL的查询优化从而达到性能的提升。      最近看了一些关于查询优化的书籍,同时也在网上看一些前辈们写的文章。...,不用索引   5.4、索引细究     资料查询:     MySQL中的InnoDB、MyISAM都是B-Tree类型索引     B-Tree包含:PRIMARY KEY, UNIQUE, INDEX...11、博文总结   经过这些天查资料敲代码的学习,了解到了MySQL的查询优化并不是简简单单的按照某个公式某个规则就可达到的。...实验是检验标准的唯一标准,经过这几天的测试,得出的结论就是:MySQL的查询优化是有大方向,但是想要得出一个万能优化公式那是不可能的,毕竟每一条SQL查询语句的写法、结果着重点、以及表的字段环境都不一样

    2.8K30

    MySQL 查询分析

    本文主要由一个案例引发对 MySQL 性能问题的思考,主要讲述 MySQL 慢查询和 explain 工具这两个定位 MySQL 性能瓶颈的方法。...索引和查询优化部分后续将放在《MySQL 索引及查询优化总结》中。 一个低效查询引发的思考 上次在做银行对账,上传对账单后,出现对账超时的情况。...例如,在 MySQL 中运行 select sleep(3); 打开慢查询日志文件 MySQL-slow.log 的信息格式如下,说明这条 sql 语句执行用时 5.000183s,锁了 0s,查询返回...使用 MySQLdumpslow 命令可以非常明确的得到各种我们需要的查询语句,对 MySQL 查询语句的监控、分析、优化是 MySQL 优化的第一步,也是非常重要的一步。...这涉及到索引问题,这一部分将会后续放在《MySQL 索引及查询优化总结》中讲述,本文主要讲述定位 MySQL 性能瓶颈的两种方法:慢查询和 MySQLdumpslow 工具,explain 命令。

    5.1K20

    MySQL查询成本

    CPU、内存、磁盘IO、网络作为性能优化的四大天王,但MySQL中一条查询语句的执行成本是由磁盘IO和CPU成本决定的: I/O成本 我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的...,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。...没有大数据量的查询,一般I/O成本还好。当然代码中也不允许一次查询上万条数据,如果需要导数据可以走从库和延时从库。...进入MySQL使用show processlist, 查看当前 MySQL使用频繁的 sql 语句,反复调用此命令,就能把循环调用的sql,如果开发这样在主库上做的话,一定要拉出去祭天。...总之,MySQL的查询成本是多方面,要想做到高性能MySQL,需要运维,开发,DBA一起努力。

    1.4K30

    MySQL 子查询

    什么是子查询? 如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句中,那么该select语句称为子查询,通常将子查询写在小括号内。...例如 , 通过子查询找到张三的年龄,再去与外层查询的age字段比较,得到结果; select * from 表 where age (select age from 表 where name='张三...'); 对子查询返回的数据结果分类,可以分为 表子查询(单行或多行数据),列子查询(某列数据),和标量子查询(具体某个值)。...集合比较子查询 通过子查询返回相同数据类型的数据集合进行比较,通常与比较操作符(>,)搭配使用。...IN 判断是否在集合中 例:SELECT * FROM A WHERE cc IN (SELECT cc FROM B) ANY 需要与比较操作符一起使用,与子查询返回的任何值做比较 例:SELECT

    4.1K10

    【MySQL】复合查询

    复合查询 前面我们讲解的 mysql 表的查询都是对一张表进行查询,在实际开发中这远远不够,接下来我们要学习多表查询,即符合查询。...四、子查询 子查询是指嵌入在其他 sql 语句中的 select 语句,也叫嵌套查询。 1. 单行子查询 返回一行记录的子查询。...多行子查询 返回多行记录的子查询。...多列子查询 单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。...from emp group by deptno) tmp -> where dept.deptno = tmp.deptno; 总结,解决多表问题的本质:想办法将多表转化为单表,所以 mysql

    1.3K10
    领券