我有三个php API,它们有以下查询:
api 1:
$sql = "SELECT number, status, user_id from number_list WHERE disable=0
order by id LIMIT 0,700";
api 2:
$sql = "SELECT number, status, user_id from number_list WHERE disable=0
order by id LIMIT 701,1400";
api 3:
$sql = "SELECT number, status, user_id from number_list WHERE disable=0
order by id LIMIT 1401,2100";
我想在每个api中获取700条记录。例如,
api 1中的0到700,
api 2中的701至1400和
api 3中的1401至2100(如上所示)。
api 1运行良好,但api 2和api 3缺少一个结果。
为什么会发生这种情况?我该如何纠正?
3条答案
按热度按时间hof1towb1#
api 1标准
api 2标准
api 3标准
解释
mysql还提供了一种处理方法:使用offset。
下面的sql查询表示“仅返回10条记录,从记录16开始(偏移量15)”:
您也可以使用较短的语法来获得相同的结果:
演示
http://sqlfiddle.com/#!9/10ff28/7号
wlp8pajw2#
limit中的第二个参数讨论所需行的大小,因此在本例中,由于需要700块数据,逗号后面的第二部分将始终是700。
所以你的问题会是
flvlnr443#
limit关键字用于限制从中返回的行数
结果集。极限数可以是从零(0)开始的任意数
向上。将零(0)指定为限制时,不返回任何行
从结果集中。偏移值允许我们指定哪一行
从检索数据开始,它可以与
选择、更新或删除命令限制关键字语法
在您的情况下,它将是: