如果我在mysql查询上使用LIMIT,结果集是否应该等于限制?

时间:2009-01-29 06:20:40

标签: mysql limit

例如select * from table limit 0,5将最多返回5行或者必须找到5行,如果row_count不等于5,则返回空结果集?

如果查询是select * from table limit 5怎么办?

4 个答案:

答案 0 :(得分:7)

http://dev.mysql.com/doc/refman/5.1/en/select.html

“LIMIT子句可用于约束SELECT语句返回的行数.LIMIT需要一个或两个数字参数,这些参数必须都是非负整数常量(使用预准备语句时除外)。 使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的行的最大数量。“

因此,要直接回答您的问题,它最多会返回 5行。

答案 1 :(得分:5)

查询SELECT * FROM table LIMIT 0,5将从第一条记录开始返回5条记录。

查询SELECT * FROM table LIMIT 5也会提供与上述查询相同的结果。

如果在该表中记录的记录少于5个,则它不会失败但返回任何记录。

当索引从0开始时,查询SELECT * FROM table LIMIT 6,5将返回记录7,8,9,10,11。

答案 2 :(得分:2)

限制是一个限制,因此它不会返回超过那么多行。它可以减少回报。

答案 3 :(得分:0)

在查询“select * from table limit 0,5” 0未指定要返回的最小记录。它指定OFFSET。所以当你说0时,如果查询“select * from table”返回10条记录,“limit 0,5”将返回第5条。如果使用“limit 5,5”,它将返回最后5条记录。

如果您只有2条记录,则会返回两条记录。如果没有结果,它将不会返回错误。 LIMIT是最大限制。最小值可以是任何值,甚至是0记录。

“select * from table limit 5”与“select * from table limit 0,5”

相同