MySQL查询问题

时间:2011-03-13 04:22:10

标签: php mysql

我有一个简单的问题重新调整MySQL。是否可以返回行'x'和行'y'之间的行?这有点难以解释 - 为了举个例子:返回第6行到第10行,不包括第1-5行和第11行。谢谢! ; d

6 个答案:

答案 0 :(得分:4)

使用LIMIT。请记住将它与ORDER BY结合起来以使结果有意义。

SELECT fields, ...
FROM table
ORDER BY something_sensible
LIMIT 5, 5

(从第6行开始,需要5行)

答案 1 :(得分:2)

是的,这是一个例子:

SELECT * FROM myTable LIMIT 5, 5

答案 2 :(得分:2)

SELECT * FROM table LIMIT 5, 5

http://dev.mysql.com/doc/refman/5.5/en/select.html并查看LIMIT部分

答案 3 :(得分:0)

从手册(http://dev.mysql.com/doc/refman/5.0/en/select.html):

  

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量(使用预准备语句时除外)。

     

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

     

SELECT * FROM tbl LIMIT 5,10; #检索行6-15

答案 4 :(得分:0)

mysql> select * from employees order by emp_id;
+--------+-----------------+---------+
| emp_id | name            | boss_id |
+--------+-----------------+---------+
|      1 | f00             |    NULL |
|      2 | ali later       |       1 |
|      3 | megan fox       |       1 |
|      4 | jessica alba    |       3 |
|      5 | eva longoria    |       3 |
|      6 | keira knightley |       5 |
|      7 | liv tyler       |       6 |
|      8 | sophie marceau  |       6 |
+--------+-----------------+---------+
8 rows in set (0.00 sec)

mysql> select * from employees order by emp_id limit 2,4;
+--------+-----------------+---------+
| emp_id | name            | boss_id |
+--------+-----------------+---------+
|      3 | megan fox       |       1 |
|      4 | jessica alba    |       3 |
|      5 | eva longoria    |       3 |
|      6 | keira knightley |       5 |
+--------+-----------------+---------+
4 rows in set (0.00 sec)

答案 5 :(得分:-1)

为什么不使用自动增量字段?或者您可以使用LIMIT关键字:

SELECT * FROM tablename WHERE LIMIT 0, 5 

这将显示记录1,2,3,4,5