精华内容
下载资源
问答
  • 看一下以下查询:highgo=# select * from te2 limit 5; id | name ----+-------- 1 | highgo 2 | highgo 3 | highgo 4 | highgo 5 | highgo (5 rows) highgo=# select * from te2 limit 5,1; ERROR: 42601: ...

    作者:瀚高PG实验室 (Highgo PG Lab)- 海无涯

    看一下以下查询:

    highgo=# select * from te2 limit 5;
     id |  name  
    ----+--------
      1 | highgo
      2 | highgo
      3 | highgo
      4 | highgo
      5 | highgo
    (5 rows)
    
    highgo=# select * from te2 limit 5,1;
    ERROR:  42601: LIMIT #,# syntax is not supported at character 19
    HINT:  Use separate LIMIT and OFFSET clauses.
    STATEMENT:  select * from te2 limit 5,1;
    ERROR:  42601: LIMIT #,# syntax is not supported
    LINE 1: select * from te2 limit 5,1;
                              ^
    HINT:  Use separate LIMIT and OFFSET clauses.

    可以发现直接报错,提示使用单独的LIMIT和OFFSET子句。

    参考如下社区讨论通过补丁是否解决此问题(暂未验证):https://www.drupal.org/node/1335644

     

     

    展开全文
  • mysql limit分页 SQL语句模糊查询

    千次阅读 2017-04-14 16:09:00
    limit函数:在数据库中经常要取表中记录中间的记录,在sql语句中使用limit可以实现此功能<pre name="code" class="sql">select * from a limit 5,20 理解:从表中的第五行数据开始取数据,一共取出20条这个用法可以...

    limit函数:

    在数据库中经常要取表中记录中间的记录,在sql语句中使用limit

    可以实现此功能

    select * from a limit 5,20 

    理解:从表中的第五行数据开始取数据,一共取出20条

    这个用法可以实现sql语句分页,只需要传进页数和每条页数两个参数即可以实现分页

    模糊查询:

    模糊查询语句关键字一般使用 Llike

    格式如下:

    select  *  from  表名 where 字段 like 参数

    关于参数 ,sql语句给出了四种匹配模式

    1.%表示0个或者多个字符,可匹配任意长度的字符,如果参数有中文的写法则%中文%这样的写法.

    例:

    select from 表名 where 字段 like‘%中文%’

    2.

    展开全文
  • sql语句limit用法

    2018-11-29 10:53:48
    sql语句根据条件查询指定数量的数据 SELECT * from 表名 WHERE 条件 limit 5,10; //检索6-15条数据 SELECT * from 表名 WHERE 条件 limit 5,-1; //检索6到最后一条数据 SELECT * from 表名 WHERE 条件 limit 5; /...

    sql语句根据条件查询指定数量的数据

    SELECT * from 表名 WHERE 条件 limit 5,10; //检索6-15条数据

    SELECT * from 表名 WHERE 条件 limit 5,-1; //检索6到最后一条数据

    SELECT * from 表名 WHERE 条件 limit 5; //检索前5条数据
    --------------------- 
    作者:王立平的博客 
    来源:CSDN 
    原文:https://blog.csdn.net/qq_37131111/article/details/72783537 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • sql 语句limit的用法

    千次阅读 2013-11-18 11:23:05
    sql 语句limit的用法 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录...

    sql 语句的limit的用法

    SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset   mysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15

    //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: 
    mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.

    //如果只给定一个参数,它表示返回最大的记录行数目: 
    mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行

    //换句话说,LIMIT n 等价于 LIMIT 0,n。select * from table LIMIT 5,10; #返回第6-15行数据
    select * from table LIMIT 5; #返回前5行
    select * from table LIMIT 0,5; #返回前5行

     

    1、offset比较小的时候。
    select * fromyanxue8_visit limit 10,10

    多次运行,时间保持在0.0004-0.0005之间

    Select * From yanxue8_visit Where vid >=(
    Select vid From yanxue8_visit Order By vid limit 10,1
    ) limit 10


    多次运行,时间保持在0.0005-0.0006之间,主要是0.0006
    结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。


    2、offset大的时候。
    select * from yanxue8_visit limit 10000,10
    多次运行,时间保持在0.0187左右

    Select * From yanxue8_visit Where vid >=(
    Select vid From yanxue8_visit Order By vid limit 10000,1
    ) limit 10
    多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。


    性能优化:

    基于MySQL5.0中limit的高性能,我对数据分页也重新有了新的认识.

    1.
    Select * From cyclopedia Where ID>=(
    Select Max(ID) From (
     Select ID From cyclopedia Order By ID limit90001
    ) As tmp
    ) limit 100;

    2.
    Select * From cyclopedia Where ID>=(
    Select Max(ID) From (
     Select ID From cyclopedia Order By ID limit90000,1
    ) As tmp
    ) limit 100;

    同样是取90000条后100条记录,第1句快还是第2句快?
    第1句是先取了前90001条记录,取其中最大一个ID值作为起始标识,然后利用它可以快速定位下100条记录
    第2句择是仅仅取90000条记录后1条,然后取ID值作起始标识定位下100条记录
    第1句执行结果.100 rows in set (0.23) sec
    第2句执行结果.100 rows in set (0.19) sec

    很明显第2句胜出.看来limit好像并不完全像我之前想象的那样做全表扫描返回limitoffset+length条记录,这样看来limit比起MS-SQL的Top性能还是要提高不少的.

    其实第2句完全可以简化成

    Select * From cyclopedia Where ID>=(
    Select ID From cyclopedia limit 90000,1
    )limit 100;

    直接利用第90000条记录的ID,不用经过Max运算,这样做理论上效率因该高一些,但在实际使用中几乎看不到效果,因为本身定位ID返回的就是1条记录,Max几乎不用运作就能得到结果,但这样写更清淅明朗,省去了画蛇那一足.

    可是,既然MySQL有limit可以直接控制取出记录的位置,为什么不干脆用Select * From cyclopedia limit90000,1呢?岂不更简洁?
    这 样想就错了,试了就知道,结果是:1 row in set (8.88)sec,怎么样,够吓人的吧,让我想起了昨天在4.1中比这还有过之的"高分".Select *最好不要随便用,要本着用什么,选什么的原则, Select的字段越多,字段数据量越大,速度就越慢.上面2种分页方式哪种都比单写这1句强多了,虽然看起来好像查询的次数更多一些,但实际上是以较小的代价换取了高效的性能,是非常值得的.

    第1种方案同样可用于MS-SQL,而且可能是最好的.因为靠主键ID来定位起始段总是最快的.

    Select Top 100 * From cyclopedia Where ID>=(
    Select Top 90001 Max(ID) From (
     Select ID From cyclopedia Order By ID
    ) As tmp
    )

    但不管是实现方式是存贮过程还是直接代码中,瓶颈始终在于MS-SQL的TOP总是要返回前N个记录,这种情况在数据量不大时感受不深,但如果成百上千万,效率肯定会低下的.相比之下MySQL的limit就有优势的多,执行:
    Select ID From cyclopedia limit 90000
    Select ID From cyclopedia limit 90000,1
    的结果分别是:
    90000 rows in set (0.36) sec
    1 row in set (0.06) sec
    而MS-SQL只能用Select Top 90000 ID From cyclopedia执行时间是390ms,执行同样的操作时间也不及MySQL的360ms.----------------------------------------------------------LIMIT 思考 PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”EfficientPagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。首先看一下分页的基本原理:mysql> explain SELECT * FROM message ORDER BYid DESC LIMIT 10000, 20G
    ***************** 1. row **************
    id: 1
    select_type: SIMPLE
    table: message
    type: index
    possible_keys: NULL
    key: PRIMARY
    key_len: 4
    ref: NULL
    rows: 10020

    Extra:
    1 row in set (0.00 sec)limit10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。文中还提到limitn性能是没问题的,因为只扫描n行。文中提到一种”clue”的做法,给翻页提供一些”线索”,比如还是SELECT * FROM message ORDER BYidDESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是9527,最小的是9500,如果我们只提供”上一页”、”下一页”这样的跳转(不提供到第N页的跳转),那么在处理”上一页”的时候SQL语句可以是:SELECT * FROM message WHERE id > 9527 ORDER BYid ASC LIMIT 20;处理”下一页”的时候SQL语句可以是:SELECT * FROM message WHERE id < 9500 ORDER BYid DESC LIMIT 20;不管翻多少页,每次查询只扫描20行。缺点是只能提供”上一页”、”下一页”的链接形式,但是我们的产品经理非常喜欢”<上一页 1 23 4 5 6 7 8 9 下一页>”这样的链接方式,怎么办呢?如果LIMIT m,n不可避免的话,要优化效率,只有尽可能的让m小一下,我们扩展前面的”clue”做法,还是SELECT *FROM message ORDER BY idDESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是9527,最小的是9500,比如要跳到第8页,我看的SQL语句可以这样写:SELECT * FROM message WHERE id > 9527 ORDER BYid ASC LIMIT 20,20;跳转到第13页:SELECT * FROM message WHERE id < 9500 ORDER BYid DESC LIMIT 40,20;原理还是一样,记录住当前页id的最大值和最小值,计算跳转页面和当前页相对偏移,由于页面相近,这个偏移量不会很大,这样的话m值相对较小,大大减少扫描的行数。其实传统的limitm,n,相对的偏移一直是第一页,这样的话越翻到后面,效率越差,而上面给出的方法就没有这样的问题。注意SQL语句里面的ASC和DESC,如果是ASC取出来的结果,显示的时候记得倒置一下。已在60W数据总量的表中测试,效果非常明显。


    展开全文
  • SQL语句Limit的用法

    万次阅读 2017-12-08 20:53:17
    官方Limit用法是这样的:SELECT column_name(s) FROM table_name LIMIT number想必大家看了之后跟我有同一个想法,这Limit 怎么用根本没讲到啊,那接下来我就详细解剖一下;select * from Customer LIMIT 10 ;--检索...
  • SQL语句limit的用法

    万次阅读 2017-05-27 17:58:35
    sql语句根据条件查询指定数量的数据SELECT * form 表名 WHERE 条件 limit 5,10; //检索6-15条数据SELECT * form 表名 WHERE 条件 limit 5,-1; //检索6到最后一条数据SELECT * form 表名 WHERE 条件 limit 5; //检索...
  • sql语句limit用法详解

    千次阅读 2018-04-10 11:16:13
    SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset;   入门篇 SELECT * FROM table LIMIT 0,10;//检索记录行1-10   进阶篇 SELECT * FROM table LIMIT 2,10;//检索记录行3-13 ...
  • 调优一个sql语句,在语句本身是很简单的查询select * from a where id &gt; 1 order by addtime desc limit 10查询的结果集很小 只有10修改为 limit 1后,依然很慢大概2s的查询时间。explain 发现没有使用索引,...
  • sql语句limit

    千次阅读 2019-02-28 13:56:01
    SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql&gt; SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-...
  • 一. 基本用法 ... LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第...
  • ORACLE分页查询SQL语句(最有效的分页)

    万次阅读 多人点赞 2018-11-01 16:18:24
    (有ORDER BY写法) (语法风格与传统的SQL语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。) WITH partdata AS ( SELECT ROWNUM AS rowno, tt.* FROM ( SELECT * FROM k_task t WHERE flight_date ...
  • sql语句limit和order by

    千次阅读 2017-11-26 22:09:58
    sql语句limit和order by 注意先后顺序 http://www.w3school.com.cn/sql/sql_orderby.asp http://yangchunhe.iteye.com/blog/1123747
  • sql语句limit的用法

    2021-02-18 16:18:52
    具体语句:【select * from tablename limit i,j;】 *:tablename:要查询的表名; *:i:查询结果的索引值(默认从0开始); *:j:查询结果返回数量; Part2:实例 (1)查询student表所有数据 select * from student; (2...
  • SQL语句中中LIMIT的用法

    万次阅读 2018-04-14 17:47:35
    假设有这么一张表名叫ids,只有id一列: id --- 1 2 3 4 5 ... ... 197 198 199 200 执行 SELECT * FROM ids LIMIT 10, 1 输出: ...SELECT * FROM ids LIMIT 10, 3 ...SELECT * FROM ids LIMIT...
  • sql 语句中的limit用法

    2021-01-15 21:08:45
    limit子句用于限制查询结果返回的数量。 用法:【select * from tableName limit i,n 】 参数: tableName : 为数据表; i : 为查询结果的索引值(默认从0开始); n : 为查询结果返回的数量 select grade from ...
  • SQL查询语句中的 limit 与 offset 的区别

    万次阅读 多人点赞 2018-08-22 15:56:25
    SQL查询语句中的 limit 与 offset 的区别: limit y 分句表示: 读取 y 条数据 limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据 limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据 比如分页获取...
  • SQL Server实现Limit语句

    2020-12-14 23:42:01
    SQL Server实现Limit语句: MySQL有Limit语句,而SQL Server中没有。如何在SQL Server中实现类似的功能?以下方法作为参考: (1)用TOP子句实现: top子句的用法如下: /*从table_表中取出前m条记录*/ /*m是从1...
  • sql语句中的limit用法

    千次阅读 2019-02-13 21:26:06
    limit用法自己经常忘记,而且面试喜欢经常问,所以记录一篇,以后可以看看。 select grade from Student limit 5,1。表示:从第6行或者第6页开始查询(包括第6行),往后查一行数据,结果是 6. 以下进行简写: ...
  • sql语句limit实现分页功能

    千次阅读 2019-09-25 10:23:24
    自学sql使用limit实现分页功能遇到的小坑 目的:查询指定表****指定条件下的第一页第一条数据的实现 1. SELECT id FROM '表' WHERE '条件' LIMIT 0,1; // 第一页取一条数据 2. SELECT id FROM '表' WHERE '条件' ...
  • 经典SQL语句大全

    万次阅读 多人点赞 2016-10-01 13:59:02
    SQL语句参考,包含Access、MySQL 以及 SQL Server基础创建数据库CREATE DATABASE database-name 删除数据库drop database dbname 备份sql server 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', ...
  • sql 语句 limit ,offset
  • SQL语句LIMIT在MySQL中的性能分析

    千次阅读 2016-05-03 21:33:52
    SQL语句LIMIT在MySQL中的性能分析
  • SQL语句里的limit使用方法

    千次阅读 2017-03-31 14:38:05
    使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?其实,Mysql已经为我们提供了上面这样一个功能:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
  • SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了上面这样一个功能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,658
精华内容 65,063
关键字:

limitsql语句