简单的asp网站,上传宝贝网站建设属于什么类目,一个空间多个php网站,邹平网站开发SQL LIMIT
SQL LIMIT子句简介
要检索查询返回的行的一部分#xff0c;请使用LIMIT和OFFSET子句。 以下说明了这些子句的语法#xff1a;
SELECT column_list
FROMtable1
ORDER BY column_list
LIMIT row_count OFFSET offset;在这个语法中#xff0c;
row_count确定将返…SQL LIMIT
SQL LIMIT子句简介
要检索查询返回的行的一部分请使用LIMIT和OFFSET子句。 以下说明了这些子句的语法
SELECT column_list
FROMtable1
ORDER BY column_list
LIMIT row_count OFFSET offset;在这个语法中
row_count确定将返回的行数。OFFSET子句在开始返回行之前跳过偏移行。 OFFSET子句是可选的。 如果同时使用LIMIT和OFFSET子句OFFSET会在LIMIT约束行数之前先跳过偏移行。
在使用LIMIT子句时使用ORDER BY子句确保返回的行按指定顺序非常重要。 并非所有数据库系统都支持LIMIT子句因此LIMIT子句仅在某些数据库系统中可用例如MySQLPostgreSQLSQLiteSybase SQL Anywhere和HSQLDB。
SQL LIMIT子句示例
我们将使用示例数据库中的employees表来演示LIMIT子句用法。 以下语句返回employees表中按first_name列排序的所有行。
SELECT employee_id, first_name, last_name
FROMemployees
ORDER BY first_name;执行上面查询语句得到以下结果 -
------------------------------------
| employee_id | first_name | last_name |
------------------------------------
| 103 | Alexander | Lee |
| 115 | Alexander | Su |
| 114 | Avg | Su |
| 193 | Britney | Zhao |
| 104 | Bruce | Wong |
... ...
| 100 | Steven | Lee |
| 203 | Susan | Zhou |
| 106 | Valli | Chen |
| 206 | William | Wu |
------------------------------------
40 rows in set如果要只返回前5行请使用LIMIT子句如以下语句。
SELECT employee_id, first_name, last_name
FROMemployees
ORDER BY first_name
LIMIT 5;执行上面查询语句得到以下结果 -
------------------------------------
| employee_id | first_name | last_name |
------------------------------------
| 115 | Alexander | Su |
| 103 | Alexander | Lee |
| 114 | Avg | Su |
| 193 | Britney | Zhao |
| 104 | Bruce | Wong |
------------------------------------
5 rows in set要跳过两行并获取接下来的五行请使用LIMIT和OFFSET子句如以下语句所示。
SELECT employee_id, first_name, last_name
FROMemployees
ORDER BY first_name
LIMIT 5 OFFSET 3;结果如下图所示 - 如果使用的是MySQL则可以使用LIMIT OFFSET子句的较短形式。
SELECT employee_id, first_name, last_name
FROMemployees
ORDER BY first_name
LIMIT 3 , 5;使用SQL LIMIT获取具有最高或最低值的前N行
可以使用LIMIT子句获取具有最高或最低值的前N行。 例如以下声明获得薪资最高的前五名员工。
SELECT employee_id, first_name, last_name, salary
FROMemployees
ORDER BY salary DESC
LIMIT 5;执行上面示例代码得到以下结果 - 首先ORDER BY子句按工资按降序对员工进行排序然后LIMIT子句限制从查询返回的五行。为了获得薪资最低的前五名员工可以按升序对员工进行排序。
获取具有第N个最高值的行
假设必须得到公司薪水第二高的员工。请使用LIMIT OFFSET子句如下所示。
SELECT employee_id, first_name, last_name, salary
FROMemployees
ORDER BY salary DESC
LIMIT 1 OFFSET 1;ORDER BY子句按工资降序对员工进行排序。 LIMIT 1 OFFSET 1子句从结果集中获取第二行。此查询的假设是每个员工都有不同的薪水。 如果有两名员工拥有相同的最高薪水那么它将会失败。 此外如果有两个或更多具有相同第二高薪的员工则查询只返回第一个。要解决此问题可以使用以下语句首先获得第二高薪。
SELECT DISTINCTsalary
FROMemployees
ORDER BY salary DESC
LIMIT 1 , 1;执行上面示例代码得到以下结果 -
mysql SELECT DISTINCTsalary
FROMemployees
ORDER BY salary DESC
LIMIT 1 , 1;
--------
| salary |
--------
| 17000 |
--------
1 row in set并将结果传递给另一个查询
SELECT employee_id, first_name, last_name, salary
FROMemployees
WHEREsalary 17000;结果如下所示 - 如果使用子查询则可以将两个查询组合到单个查询中如下所示
SELECT employee_id, first_name, last_name, salary
FROMemployees
WHEREsalary (SELECT DISTINCTsalaryFROMemployeesORDER BY salary DESCLIMIT 1 , 1);结果如下所示 - 在本教程中我们向您介绍了SQL LIMIT和OFFSET子句这些子句用于限制查询返回的行数。