MYSQL中LIMIT用法

MYSQL中LIMIT用法
SELECT * FROM tableName  LIMIT [offset,] rows;
 1、select * from table limit m,n(显示条数)
    其中m是指记录开始的索引index(索引是从0开始的表示第一条记录 )
    n是指从第m+1条开始,取n条。
    结果是检索记录第m+1行至(m+n)行记录,共取出n条记录
    ex:
    SELECT * FROM 表名 limit 6,5;
    结果:检索记录第7行至11行记录,共取出5条记录。

 2、n可以被设置为-1,当n为-1时,表示从m+1行开始检索,直到取出最后一条数据。
    ex:
    SELECT * FROM 表名 limit 6,-1;
    结果:检索取出第7行至以后的所有数据。

 3、若只给出m,则表示从第1行记录行开始算一共取出m条(limit 0,n 的特殊情况)
    ex:
    SELECT * FROM 表名 limit 6;
    结果:检索取出前6条记录行。

 4、检索性能优化.根据数据量的大小选择相应的语句:
    a.offset比较小:
    SELECT * FROM doctor limit 10,10
    多次运行,时间保持在0.0004-0.0005之间
    SELECT * FROM doctor Where id >=(
    SELECT id From doctor id limit 10,1
    ) limit 10
    多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

    结论:偏移量offset较小的时候,直接使用limit较优。

    b.offset大的时候。
    SELECT * FROM doctor limit 3000,10
    多次运行,时间保持在0.012左右
    SELECT * FROM doctor Where id >=(
    SELECT id FROM doctor id limit 3000,1
    ) limit 10
    多次运行,时间保持在0.004左右,只有前者的1/3。

    结论:偏移量offset越大,后者直接使用子查询越优。
时间: 2024-12-24 23:46:59

MYSQL中LIMIT用法的相关文章

sqlserver row_number 类似 mysql中 limit 用法

select * from ( select row_number() over(ORDER BY inspecdate desc,inspectime DESC,itemorder asc ) as num, contentid,quesioncontext,tempid,tempname,itemid,itemtext,belongteam,teamname,inspecdate, inspectime,contenttext,createperson,newaddtime,updateti

MYSQL 中 LIMIT 用法

mapper文件中的sql: -------------------------------------------------------------------------------------------- (在实体类中定义的属性) start:从第几条记录开始. size:读取几条记录. select id="findAllUsers" parameterType="Map" resultType="entity.IUser">

Mysql中limit用法及简单按序查寻示例

limit 接收一个或两个参数. 可以实现前排前几行的数据或排后几行的数据,或者中间几行的数据 order by + 关键字  表示按关键字什么顺序排列,默认是正序,从小到大, order by + 关键字 desc 表示按倒序排列,从大到小顺序. 如:倒序排列取前几行数据: order by id desc limit 10 按照id的倒序排序 取出前10条 order by id desc limit 0,10 按照id的倒序排序 取出前10条 换句话说,Limit n 等价于 Limit

Mysql中limit的用法详解

对比Oracle.SQL Server,个人感觉MySql的分页是最好用的,现在总结一下,写在这里. Mysql中limit的用法: 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数. LIMIT 接受一个或两个数字参数.参数

mysql中limit与in不能同时使用的解决方式.

mysql中limit与in不能同时使用的解决方式. 分类: MySQL2011-10-31 13:53 1277人阅读 评论(0) 收藏 举报 mysqlsubquery MySQL5.1中子查询是不能使用LIMIT的,报错: "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' " 这样的语句是不能正确执行的.select * from message where id i

MySQL的limit用法及优化(转)

常规用法: 用法一: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2 OFFSET 1; 比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取. 用法二: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2,1; 而这个SQL,limit后面是从第2条开始读

mysql中limit的用法详解[数据分页常用]

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目.初始记录行的偏移量是

Mysql 中explain用法

explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 先解析一条sql语句,看出现什么内容 EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchome_spacefieldASfWHERE 1 AND s.groupid=0AND s.uid=f.uid 1. i

mysql中-e用法

实际应用中,不仅可以先登陆mysql再使用,还可以在链接的时候进行sql操作,此时需要加参数-e 例: >mysql -hlocalhost -P8080 -uroot -p123456 -e'set names utf8;use report;select * from table;'; 就是这样,-e中的语句需要用封号来分割.