簡體   English   中英

計算數據庫中的行並回顯所需的行號

[英]Count rows in database and echo out desired row number

如果我的mysql數據庫中有5行,其ID為2、4、5、6和8,並且回顯了ID 5,那么我該如何回顯出行號,當然那將是第3行? 通過計算從數據庫開始到我之后的所有行,我得到了第3行。

嘗試使用

SELECT @row_num:=@row_num+1 as row_number, id from table inner join (select @row_num:=0) as temp

$pdo = new PDO(....);
$result = $pdo->query($sql)->fetchAll();
foreach($result as $row) {
    print_r($row);
}

正確的解決方案是在表中添加一些auto_increment鍵,然后每行將分配一個順序號。 否則,不能保證每個id都具有相同的數字,因為不保證沒有ORDER BY子句的SQL查詢具有任何順序(即,id可能以隨機順序返回)。

否則,Andrej L給出的解決方案是正確的。

您難道不可以按照使用的排序順序在此之前計算行數嗎?

COUNT(*) FROM table WHERE id < ?

在這種情況下,只有ID為2和3的行才可以計數,因此結果為2。如果您使用的是基於1的索引,請為其添加一個,然后您便得到了答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM