有没有一种方法可以获取查询结果中记录的行号?

时间:2020-09-02 14:46:12

标签: mysql

假设我们有一个类似的查询:

SELECT id,key1
FROM my_table
WHERE condition = true
ORDER BY id

这将产生以下数组:

[
    [id => 123, key1 => 'A'], 
    [id => 234, key1 => 'B'],
    [id => 546, key1 => 'C']
]

该数组有3个值。带有key1='B'的行的索引为 1

是否可以直接从查询中获取'1'

1 个答案:

答案 0 :(得分:1)

您可以使用ROW_NUMBER() OVER()来获取结果集中每一行的位置索引。

SELECT id, key1, ROW_NUMBER() OVER(ORDER BY id)
FROM my_table
WHERE condition = true
ORDER BY id