mysql - 如何使用 MySQL 获取元素的行号?
问题描述
如何获取元素的行号?
示例数据
id name age
8347 Jacob 65
3645 Jerico 67
3243 Michel 34
如何获得 67 岁的行号?行号 2
解决方案
这是一个常见的误解: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 岁的记录,它们都将显示在结果集中,以及它们关联的行号。
推荐阅读
- c# - 更改组合框的 DisplayMember 和 ValueMember 属性
- python - 使用python获取firebase中登录用户的uid
- php - 我可以将 group_concat () 用于图像吗?
- postgresql - PostgreSQL 数据库转储:授予用户备份的所有权限有意义吗?
- mysql - VBScript 在同一代码中使用两个 For Next
- php - 如何将此 MySQL 脚本更改为 MySQLI?
- java - 如何为具有 JSON 作为有效负载的请求正文编写wiremock存根定义
- javascript - 如何在数组中找到包含最大值的对象
- php - 在 php 问题中更新时未定义的索引 [请帮助]
- java - 仅定义对象时会发生什么?