[英]LIMIT issue in MySQLi Query
我有三個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和3缺少結果。
為什么會發生這種情況,我該如何糾正?
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 700,700";
API 3
$sql = "SELECT number, status, user_id from number_list WHERE disable=0
order by id LIMIT 1400,700";
說明
Mysql還提供了一種解決方法:使用OFFSET。
下面的SQL查詢顯示“僅返回10條記錄,從記錄16開始(偏移15)”:
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";
您也可以使用較短的語法來達到相同的結果:
$sql = "SELECT * FROM Orders LIMIT 15, 10";
演示版
限制中的第二個參數討論所需行的大小,因此在您的情況下,由於需要700個數據塊,因此逗號后面的第二個部分始終為700。
所以你的查詢就像
LIMIT 0,700"; //for api 1
LIMIT 700,700"; //for api 2
LIMIT 1400,700"; //for api 3
的LIMIT關鍵字用於限制從中返回的行數
結果集。 LIMIT數可以是零(0)之間的任何數字
向上。 如果將零(0)指定為限制,則不返回任何行
從結果集中。 OFF SET值使我們可以指定哪一行
從檢索數據開始它可以與
SELECT,UPDATE或DELETE命令LIMIT關鍵字語法
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
您的情況將是:
$sql = "SELECT number, status, user_id from number_list WHERE disable=0 order by id LIMIT 700,700";
$sql = "SELECT number, status, user_id from number_list WHERE disable=0 order by id LIMIT 1400,700";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.