【问题标题】:How to get the position of a row in an ordered table with MySQL?如何使用 MySQL 在有序表中获取行的位置?
【发布时间】:2018-02-05 20:43:52
【问题描述】:

我是 Hibernate 的新手,我希望在结果集中有一行在有序表中的位置。 假设我有一张这样的表:

-------------------------- 跑步者 -------------------------- 姓名 |到达的时间 约翰 | 2018-02-05 21:27:10 迈克 | 2018-02-05 21:27:15 卢克 | 2018-02-05 21:28:19 --------------------------

我想通过查询获得跑步者的位置,给出名字。 所以,如果我想用“John”查询那个表,我希望结果是:

姓名 |位置 约翰 | 1

因为约翰是第一个到达的(迈克 - 2;卢克 - 3)

是否可以使用 Hibernate 查询(MySQL 方言)?
在此先感谢,并为我的英语不好感到抱歉。

【问题讨论】:

    标签: mysql database hibernate


    【解决方案1】:

    SQL 表不是按设计排序的,因此行没有位置。

    如果你想存储位置,你应该添加一个特定的列。然后您将能够知道任何行的位置并以保证的顺序获取行(使用ORDER BY

    【讨论】:

    • 到达时间似乎是一个有效的候选人
    • 但是如果我有到达时间,为什么还要存储位置呢?
    • 如果我想获得第一个,我会使用到达时间列执行此查询:SELECT * FROM RUNNERS WHERE TIME_OF_ARRIVAL = (SELECT MAX(TIME_OF_ARRIVAL) FROM RUNNERS)。但是如何通过跑步者的名字获得位置数呢?
    猜你喜欢
    • 2013-01-03
    • 2013-05-11
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2011-04-06
    相关资源
    最近更新 更多