mysql limit to_mysql中limit用法[转]

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

b6d71aa4becfe5f5e725b0d219d93c91.gifSELECT*FROMtableLIMIT[offset,]rows|rows OFFSET offset

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

b1a79564f60aee0b96fce26c10b4bf0d.gifmysql>SELECT*FROMtableLIMIT5,10;//检索记录行6-15677b04666fbe4aa7ccaa3115dcf78e50.gif

adde609103107894cee28e39dfc4bcf6.gif//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1:

0e8be56760e310a0f0fcab033970ed3f.gifmysql>SELECT*FROMtableLIMIT95,-1;//检索记录行96-last.

6dbed00f35b48d00a3e8bedb45665a42.gif

fce46d2f7427116749336eb93cd7008b.gif//如果只给定一个参数,它表示返回最大的记录行数目:

c8c2cf94385923ca6c26322fe07b17fc.gifmysql>SELECT*FROMtableLIMIT5;//检索前5个记录行

a448ea425282bcd73a170cb4fd005a07.gif

e91918e4fc701f7e12d348903c34222d.gif//换句话说,LIMIT n 等价于 LIMIT0,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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值