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