我有一張有數百行的表格,我想要獲取特定的行,我使用了限制以及ID和ID之間的關係 在我的應用程序中,我有兩個文本輸入,一個是起始號碼,一個是結束號碼,當我使用LIMIT時,我需要告訴用戶做出正確的計算以獲得正確的開始和結束 因此,例如,如果我有一個3000行的表,並且我想選擇2000行以上的100行,查詢將會:while和between之間的區別是什麼,在我的情況下什麼是更好的選擇?
:Select * from table LIMIT 2000,100
這將方法之間選擇高於2000
的100行
在方法之間,我運行的所有表,而功能和我使用IF語句,以獲得正確的ID這裏是我在做什麼:
Select * from table
$datastart = $_POST["datastart"];
$dataend = $_POST["dataend"];
$firstid = 0;
$lastid = 0;
$varcount6=1;
$sql = "select ID from users_info";
$sqlread = mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($sqlread)){
if($datastart==$varcount6){
$firstid = $rowdirstid["ID"];
}
if($varcount6>=$dataend){
$lastid = $rowdirstid["id1"];
break;
}
$varcount6++;
}
所以,現在我有第一ID與表的最後一個ID,然後我用另一個SQL查詢:
Select * from table where id between $firstid and $lastid
都工作
我的問題是:我應該用什麼,如果我加載大量的數據,每次?
我應該一起去嗎?或LIMIT將完成這項工作?
這太可怕了,你每次都在做一次完整的表掃描。爲什麼不使用正常的索引和條件?示例:2000以上的100個元素。SELECT * FROM表WHERE ID> = 2000 ORDER BY ID LIMIT 100 – PerroVerd
@PerroVerd這是錯誤的,因爲ID不是真正的行索引所必需的。代碼'從表LIMIT 2000,100'選擇*比您的建議更好。 –