mysql中limit用法

转载 2012年03月31日 16:33:36

原文来自:http://hi.baidu.com/sppeivan/blog/item/51e1cfe6d367ce23b93820b7.html


使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。

SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset


      LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初 始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # 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。

实例:

mysql> use sppeivan;
Database changed
mysql> select * from employee; // 返回所有结果
+------------+------------+--------+-------------+
| username   | password   | gender | cellphone   |
+------------+------------+--------+-------------+
| ewrew      | erewr      | MAN    | 13618889076 |
| ewrwerw32r | 324324     | MAN    | 13618889076 |
| grrrrr     | r44343     | WOMAN | 13618889076 |
| pansong    | erewrwe    | MAN    | 13618889076 |
| ret43t43t | 43t43      | MAN    | 13618889076 |
| ret44t4    | r4tgr      | WOMAN | 13618889076 |
| tttt       | 4et        | WOMAN | 13618889076 |
| wr34r      | retre      | MAN    | 13618889076 |
| xxx     | safe       | MAN    | 13618889076 |
| hhh       | ewrwer     | MAN    | 13618889076 |
| hg       | 6574326543 | MAN    | 13618889076 |
| ps       | ewrwe      | MAN    | 13618889076 |
| zhu       | werew      | MAN    | 13618889076 |
+------------+------------+--------+-------------+
13 rows in set (0.01 sec)

mysql> select * from employee limit 3 7;
ERROR 1064 (42000): You have an error in your SQL syntax
corresponds to your MySQL server version for the right s
line 1
mysql> select * from employee limit 3, 7; // 返回4-11行
+-----------+----------+--------+-------------+
| username | password | gender | cellphone   |
+-----------+----------+--------+-------------+
| pansong   | erewrwe | MAN    | 13618889076 |
| ret43t43t | 43t43    | MAN    | 13618889076 |
| ret44t4   | r4tgr    | WOMAN | 13618889076 |
| tttt      | 4et      | WOMAN | 13618889076 |
| wr34r     | retre    | MAN    | 13618889076 |
| xxx     | safe     | MAN    | 13618889076 |
| hhh      | ewrwer   | MAN    | 13618889076 |
+-----------+----------+--------+-------------+
7 rows in set (0.00 sec)

mysql> select * from employee limit 3,-1; // 错误语法
ERROR 1064 (42000): You have an error in your SQL syntax
corresponds to your MySQL server version for the right s
t line 1


mysql> select * from employee limit 3,1; // 返回第4行
+----------+----------+--------+-------------+
| username | password | gender | cellphone   |
+----------+----------+--------+-------------+
| pansong | erewrwe | MAN    | 13618889076|
+----------+----------+--------+-------------+
1 row in set (0.00 sec)

mysql> select * from employee limit 3; // 返回前3行

+------------+----------+--------+-------------+
| username   | password | gender | cellphone   |
+------------+----------+--------+-------------+
| ewrew      | erewr    | MAN    | 13618889076 |
| ewrwerw32r | 324324   | MAN    | 13618889076 |
| grrrrr     | r44343   | WOMAN | 13618889076 |
+------------+----------+--------+-------------+
3 rows in set (0.00 sec)


mysql> select * from employee limit 10; // 返回前10行

+------------+----------+--------+-------------+
| username   | password | gender | cellphone   |
+------------+----------+--------+-------------+
| ewrew      | erewr    | MAN    | 13618889076 |
| ewrwerw32r | 324324   | MAN    | 13618889076 |
| grrrrr     | r44343   | WOMAN | 13618889076 |
| pansong    | erewrwe | MAN    | 13618889076 |
| ret43t43t | 43t43    | MAN    | 13618889076 |
| ret44t4    | r4tgr    | WOMAN | 13618889076 |
| tttt       | 4et      | WOMAN | 13618889076 |
| wr34r      | retre    | MAN    | 13618889076 |
| xxx     | safe     | MAN    | 13811588469 |
| hhh       | ewrwer   | MAN    | 13618889076 |
+------------+----------+--------+-------------+
10 rows in set (0.00 sec)

mysql> select * from employee limit 9,1; // 返回第10行

+----------+----------+--------+-------------+
| username | password | gender | cellphone   |
+----------+----------+--------+-------------+
| hhh     | ewrwer   | MAN    | 13816668468 |
+----------+----------+--------+-------------+
1 row in set (0.00 sec)


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

http://www.phpweblog.net/peiyinjin/archive/2008/04/15/3199.html

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

一mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,Mysql已经为我们提供了这样一个功能。      S...

mysql limit高级用法示例

mysql limit效率: select `id`,`title`,`describle`,`created` from myvbga_table where click = ...

mysql的limit的用法详细

使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。 SELECT * FROM table   LIMIT [o...
  • gayayzy
  • gayayzy
  • 2011年11月10日 16:43
  • 439

mysql LIMIT 子句用法及原理

使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,已 经为我们提供了这样一个功能。 LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT ...
  • wplblog
  • wplblog
  • 2016年07月18日 08:02
  • 1417

MySQL Limit的用法总结

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table  LIMIT [offse...

mysql中limit的用法详解

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table  LIMIT [offset,...
  • zztp01
  • zztp01
  • 2011年07月13日 16:58
  • 255

Mysql中limit的用法详解

对比Oracle、SQL Server,个人感觉MySql的分页是最好用的,现在总结一下,写在这里。 Mysql中limit的用法: 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个...

mysql中limit用法

使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。SELECT*FROMtable   LIMIT [offset,] ...

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

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table  LIMIT [off...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql中limit用法
举报原因:
原因补充:

(最多只允许输入30个字)