我一直认为查询中的LIMIT
只选择我设置的数字。
假设我有两列要使用主键 - id进行选择。我有90行。
SELECT name, lastname
FROM some_table
WHERE id = '123' LIMIT 0, 30
将精确选择30行。好的,但是
SELECT name, lastname
FROM some_table
WHERE id = '123' LIMIT 30, 60
将选择超过30行。好吧,我正在使用PHP + mysql为AJAX paginator做这个。
我该如何正确地做到这一点?
答案 0 :(得分:8)
limit是offset,rowcount。所以它应该是30,30,而不是30,60,如果你想要30行。
答案 1 :(得分:2)
SELECT name, lastname FROM some_table WHERE id = '123' LIMIT 30, 30;
用简单的语言,
前30是起始记录号 第二个30是30 + 30,这是第60个记录。
这应该可以使记录在30到60之间。
答案 2 :(得分:2)
当您为LIMIT
指定两个参数时,第二个是要返回的最大行数;所以写LIMIT 30, 60
代替LIMIT 30, 30
。 (见the explanation of LIMIT
in §12.2.9 "SELECT Syntax" of the MySQL 5.6 Reference Manual。)
答案 3 :(得分:2)
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
第二个参数是行数。
答案 4 :(得分:1)
LIMIT 30 -- get 30 records
LIMIT 30, 60 -- skip 30 records and get next 60
答案 5 :(得分:1)
根据MySQL Documentation,限制语句的第二个数字是要返回的行数。如果要获取行31-60,则需要指定
SELECT name, lastname FROM some_table WHERE id = '123' LIMIT 30, 30
你要求MySQL从偏移量30开始给你60行。