zoukankan      html  css  js  c++  java
  • SELECT语句-LIMIT

    LIMIT子句可以用来约束SELECT语句 返回的行数 。 LIMIT接受一个或两个数字参数,两个参数都必须是非负整数常数,但以下情况除外:

    • 在准备好的语句中,LIMIT 可以使用? 占位符标记指定参数

    • 在存储的程序中,LIMIT 可以使用整数值的例程参数或局部变量来指定参数。

    有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量是0(不是1):

    SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

    要检索从某个偏移量到结果集结尾的所有行,可以为第二个参数使用较大的数字。该语句检索从第96行到最后一行的所有行:

    SELECT * FROM tbl LIMIT 95,18446744073709551615;

    使用一个参数,该值指定从结果集的开头返回的行数:

    SELECT * FROM tbl LIMIT 5;     # Retrieve first 5 rows

    换句话说,等于: LIMIT row_countLIMIT 0, row_count

    对于准备好的语句,您可以使用 占位符以下语句从tbl返回一行 

    SET @a=1;
    PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?';
    EXECUTE STMT USING @a;

    以下语句返回表的第二到第六行tbl

    SET @skip=1; SET @numrows=5;
    PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
    EXECUTE STMT USING @skip, @numrows;

    为了与PostgreSQL兼容,MySQL还支持 LIMIT row_count OFFSET offset 句法。

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1  | 100    |
    | 2  | 200    |
    | 3  | 300    |
    +----+--------+
    

    例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null

    +---------------------+
    | SecondHighestSalary |
    +---------------------+
    | 200                 |
    +---------------------+
    # Write your MySQL query statement below
    select(select DISTINCT Employee.Salary AS SecondHighestSalary from Employee
    ORDER BY Salary DESC
    LIMIT 1 OFFSET 1) AS SecondHighestSalary;

    如果LIMIT发生在带括号的 查询表达式,也是 已应用 在外部查询中,结果是不确定的,并且在将来的MySQL版本中可能会更改。

    如有错误,恳求读者指出,发送到wu13213786609@outlook.com。
  • 相关阅读:
    深入理解Nginx及使用Nginx实现负载均衡
    Linux内存管理之伙伴系统之伙伴系统概述
    TCP 协议如何解决粘包、半包问题
    Linux CPU亲缘性详解
    单实例
    关联容器和无序关联容器的区别
    基于范围的for循环
    vector讲一个容器的内容拷贝到另一个容器,容器的区间删除
    win32窗口添加按钮及按钮消息相应,动态显示时间
    判断是不是纯数字字符串
  • 原文地址:https://www.cnblogs.com/WLCYSYS/p/leetcode176.html
Copyright © 2011-2022 走看看