如果我的mysql数据库中有5行,其中id为2,4,5,6和8,并且我回显id 5,那么如何回显行号,当然这将是第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的索引,请添加一个,然后您就可以得到答案。