我有一些代码可以计算 SQL 查询中的行数,然后执行另一个查询来获取最后四行的信息。我用过ROWNUM
,但它不起作用。
$newscount = $db->query("
SELECT *
FROM news
");
$counter = $newscount->rowCount();
$grabnewsmsg = $db->query("
SELECT *
FROM news
WHERE ROWNUM >= $counter-4 -- this particular part doesn't owrk
ORDER BY updateno DESC -- an A_I column
");
我已经评论了我遇到问题的具体领域。这A_I
部分很好,因为每一行都应该有一个唯一的标识符,但是ROWNUM
尽管我在其他网站上读过除了 SO 上的其他问题/答案之外的内容,但它还是不起作用。它返回一个错误column rownum does not exist
。
我想仅获取最后四行 ( $query->rowCount()-4
) 的信息,但我无法通过某个updateno
阈值进行选择。如果用户删除一行,则该A_I
列不能适当地用于确定行号。
此外,我尝试了以下方法:
$grabnewsmsg = $db->query("
SELECT *
FROM news
ORDER BY updateno DESC
LIMIT 0,4
");
虽然这给出了预期的结果,但我仍然不确定为什么ROWNUM
不起作用。