Mysql 必知必会
程序员文章站
2022-07-12 17:52:04
...
LIMIT X,Y 与 LIMIT x OFFST y
limit语法支持两个参数,offset和limit,前者表示偏移量,后者表示取前limit条数据.
## 返回符合条件的前10条语句
select * from user limit 10
## 返回符合条件的第11-20条数据
select * from user limit 10,20
## 为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1
select * from user limit 100,-1
limit 在数据库量很大只查询一部分数据情况下情况下,查询效率高。
高效率的原理是:避免全表扫描,提高查询效率。
eg:LIMIT 1,只要找到了对应的一条记录,就不会继续向下扫描了,效率会大大提高。
在一种情况下,使用limit效率低,那就是:只使用limit来查询语句,并且偏移量特别大的情况
- limit x offset y
注意
- offset X是跳过X个数据,limit Y是选取Y个数据
- limit X,Y 中X表示跳过X个数据,读取Y个数据
IFNULL() 函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
IFNULL(expression, alt_value)
eg:返回第N高的薪水
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set n= N-1;
RETURN (
# Write your MySQL query statement below.
select IFNULL((select distinct Salary from Employee order by Salary desc limit n,1 ),null)
);
END