示例数据
id name age 8347 Jacob 65 3645 Jerico 67 3243 Michel 34 如何获得67岁的行号?第2行
问题来源于stack overflow
这是一个常见的误解: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岁的记录,它们都会连同相关的行号一起显示在结果集中。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。