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

时间:2019-11-14 16:54:04

标签: mysql

如何获取元素的行号?

示例数据

id   name   age
8347 Jacob  65
3645 Jerico 67
3243 Michel 34

如何获取67岁的行号? 第2行

2 个答案:

答案 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岁的记录,它们都将连同相关的行号一起显示在结果集中。

答案 1 :(得分:0)

从表面上看,这不是MySQL函数,而是SQL,如@Strawberry的注释行号所解释的那样。

这个问题看起来与您要达到的目标相似,所以请看一下! ROW_NUMBER() in MySQL