首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@row_number/rank进行mySQL分页

问使用@row_number/rank进行mySQL分页
EN

Stack Overflow用户
提问于 2020-06-04 06:18:20
回答 1查看 116关注 0票数 0

我正在试着找出我在哪里出了错。这在过去对我很有效,但这可能是因为我使用的是MariaDB,而现在是mySQL 8。我正在尝试使用排名分页。这个SQL在mySQL 8上不再有效吗?有没有更好的方法来做这件事?

代码语言:javascript
复制
SELECT
    * 
FROM
    (
    SELECT
        (@row_number:=@row_number + 1) as 'rank',
        a.* 
    FROM
        (
        SELECT
            deals.id
        FROM
            deals
        ) AS a 
    ORDER BY
        utc_created DESC 
    ) AS x,
    ( SELECT @row := 0 ) AS r 
WHERE
    1 = 1 
    AND rank >= 1 
    AND rank < 51 
ORDER BY
    rank ASC
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-04 06:52:08

rank是一个保留字,我认为您的表r放错了位置

代码语言:javascript
复制
SELECT
    * 
FROM
    (
    SELECT
        @rownum := @rownum + 1 'rank',
        a.* 
    FROM
        (
        SELECT
            foo.id
        FROM
            foo
        ) AS a ,
    ( SELECT @rownum := 0 ) AS r 
    ORDER BY
        utc_created DESC 
    ) AS x
WHERE
    1 = 1 
    AND `rank` >= 1 
    AND `rank` < 51 
ORDER BY
    `rank` ASC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62183642

复制
相关文章

相似问题

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