如何获取元素的行号?
示例数据
id name age
8347 Jacob 65
3645 Jerico 67
3243 Michel 34
如何获取67岁的行号? 第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