Mysql 有没有办法在查询结果中获取记录的行号?

Mysql 有没有办法在查询结果中获取记录的行号?,mysql,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 有没有办法直接从查询中获取'

让我们想象一下,我们有一个如下的查询:

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'

您可以使用它来获取结果集中每一行的位置索引

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

不是真的。RDBMS中的行表示无序集。因此,如果没有ORDERBY子句,“2”就没有意义。当您从查询结果创建数组时,应用程序代码会任意为结果指定一个顺序,但是您无法从数组的顺序合理地推断数据集的顺序,因为如上所述,没有顺序。有意义吗?您是否尝试过
显示索引
显示键
?如果希望
B
作为[2],更一般地说,是按字母顺序的第n行,请在
键1
(如果尚未)和
按键1
添加索引。如果你想要一个绝对值(总是相同的
B
=>2,即使添加了
AA
,也要添加一个
auto_increment
col,并按它排序。你使用的是什么版本的MySQL,但基本上你可以在Wow中看到,谢谢,这就是我想要的@RiggsFolly