首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ROWNUM不工作;试图获取SQL查询中特定行范围的信息

ROWNUM不工作;试图获取SQL查询中特定行范围的信息
EN

Stack Overflow用户
提问于 2013-09-02 19:07:16
回答 1查看 395关注 0票数 0

我有一些代码来计算SQL查询上的行数,然后再执行另一个查询来获取最后四行的信息。我使用过ROWNUM,但它不起作用。

代码语言:javascript
复制
$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都不能工作。它返回一个错误column rownum does not exist

我只想获得关于最后四行($query->rowCount()-4)的信息,但我无法通过特定的updateno阈值进行选择。如果用户删除一行,则无法恰当地使用A_I列来确定行号。

此外,我还尝试了以下几种方法:

代码语言:javascript
复制
$grabnewsmsg = $db->query("
    SELECT *
        FROM news
        ORDER BY updateno DESC
        LIMIT 0,4
");

虽然这给出了期望的结果,但我仍然不知道为什么ROWNUM不能工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-02 19:20:01

你需要理解AUTO_INC的意义。它被称为唯一标识符,原因是。“唯一”意味着任何其他行都不应该具有相同的标识符。

然而,这与任何列举都是毫无关系的。所以-

我有一个名为“updateno”的自动递增列,它对应于行的数目。

这就是你做错的事。

事实上,你根本不需要这样一个领域。如果你想要列举你的字段,那就去做吧。如果要使用标识符-为此使用常规名称- "id"

对于任何"rownum“特性,您都需要另一个mysql操作符,即限制

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18579423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档