开发者社区> 问答> 正文

如何使用MySQL获取元素的行号?

示例数据

id name age 8347 Jacob 65 3645 Jerico 67 3243 Michel 34 如何获得67岁的行号?第2行

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 14:41:28 384 0
1 条回答
写回答
取消 提交回答
  • 这是一个常见的误解:sql表表示无序的行集。数据中没有固有的顺序。如果不使用order by子句,则返回行的顺序不确定。

    因此,首先,您需要订购记录。假设您要按它们排序id(这似乎是唯一的列,由于避免了联系,因此对排序很有用)。如果您正在运行MySQL 8.0,则可以用于row_number()对记录进行排名:

    select * from (select t.*, row_number() over(order by id) rn from mytable t) t where age = 67 该年龄为67的记录将被分配第2行,因为这是数据按排序时的位置id。如果您有多条年龄为67岁的记录,它们都会连同相关的行号一起显示在结果集中。

    2019-11-15 14:41:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像