计算数据库中的行并回显所需的行号

时间:2011-08-22 20:34:28

标签: php mysql database count

如果我的mysql数据库中有5行,其中id为2,4,5,6和8,并且我回显id 5,那么如何回显行号,当然这将是第3行?我通过计算从数据库的开头到我之后的行的所有行来获得第3行。

3 个答案:

答案 0 :(得分:1)

尝试使用

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);
}

答案 1 :(得分:0)

正确的解决方案是在表中添加一些auto_increment键,然后每行都会分配一个序号。否则,您不能保证为每个id获取相同的编号,因为不保证没有ORDER BY子句的SQL查询具有任何顺序(即,可以按随机顺序返回ID)。

否则,Andrej L给出的解决方案是正确的。

答案 2 :(得分:0)

你难道不能按照你正在使用的排序顺序计算之前的行数吗?

COUNT(*) FROM table WHERE id < ?

在这种情况下,只有id为2和3的行才会计数,因此结果为2.如果您使用的是基于1的索引,请添加一个,然后您就可以得到答案。