Mysql 获取排序时特定项目的订单id

Mysql 获取排序时特定项目的订单id,mysql,Mysql,假设我们有一个表,表中的衰减值按特定顺序引入:10、11、7、5、17、147、555 如果我试图找出11的位置,例如,如果我将表升序,我会看到索引是4 然而,对于大量的数据,我不希望得到整个表并用php对其进行排序,因为这太愚蠢了 我想知道的是,mysql是否可以在有序查询中返回一个值的索引,而不必查询所有的值 谢谢大家! 更新#1 我想要的查询如下所示(感谢BlueFoots): 您可以在这里测试它MySql对此没有特殊功能(据我所知),但您可以使用a来计算结果。尽管如此,为了计算索引,您仍

假设我们有一个表,表中的衰减值按特定顺序引入:10、11、7、5、17、147、555

如果我试图找出11的位置,例如,如果我将表升序,我会看到索引是4

然而,对于大量的数据,我不希望得到整个表并用php对其进行排序,因为这太愚蠢了

我想知道的是,mysql是否可以在有序查询中返回一个值的索引,而不必查询所有的值

谢谢大家!

更新#1

我想要的查询如下所示(感谢BlueFoots):


您可以在这里测试它

MySql对此没有特殊功能(据我所知),但您可以使用a来计算结果。尽管如此,为了计算索引,您仍需要处理大量数据,因此在大型数据集上,这将非常昂贵。

MySql对此没有特殊功能(据我所知),但您可以使用a来计算结果。不过,要计算索引,您还需要处理大量数据,因此在大型数据集上,这将非常昂贵。

MySQL本身没有
rownum
,但您可以通过以下方式进行模拟:

SELECT col1, @rownum:=@rownum+1 AS rownum
FROM yourtable,
(SELECT @rownum:=0) r
ORDER BY col1
看见 使用此选项,您可以确定所需的
行数

如果需要特定的
行号
,可以将其包装在子查询中:

select *
from 
(
  SELECT col1, @rownum:=@rownum+1 AS rownum
  FROM yourtable,
  (SELECT @rownum:=0) r
  ORDER BY col1
) x
where rownum = 6

请参见MySQL本身没有
rownum
,但您可以通过以下方式模拟它:

SELECT col1, @rownum:=@rownum+1 AS rownum
FROM yourtable,
(SELECT @rownum:=0) r
ORDER BY col1
看见 使用此选项,您可以确定所需的
行数

如果需要特定的
行号
,可以将其包装在子查询中:

select *
from 
(
  SELECT col1, @rownum:=@rownum+1 AS rownum
  FROM yourtable,
  (SELECT @rownum:=0) r
  ORDER BY col1
) x
where rownum = 6

再见,谢谢你!在这个范例中,如果我想知道他在有序表中的位置,如何仅获取表值“147”的值“6”。@mugur请查看我的编辑,您可以使用
WHERE
指定要返回的
rownum
。谢谢!我终于发现我可以创建嵌套的派生表:),正如您在更新中看到的那样1@mugur很高兴你找到了答案。:)谢谢你!在这个范例中,如果我想知道他在有序表中的位置,如何仅获取表值“147”的值“6”。@mugur请查看我的编辑,您可以使用
WHERE
指定要返回的
rownum
。谢谢!我终于发现我可以创建嵌套的派生表:),正如您在更新中看到的那样1@mugur很高兴你找到了答案。:)