我做了一些研究并以这个查询结束。
SET @row_num = 0;
SELECT
@row_num := @row_num + 1 as row_number
,id
,maxPoints
FROM users
ORDER BY maxPoints
...这给了我按 maxPoints 排序的表的索引。现在是对更聪明的人的查询......
我如何从这个结果中获取 row_number WHERE id = $i AND ...(其他参数)。
p>是否可以通过一个组合查询来完成,或者我是否需要在 php 端拆分这些查询?我无法在语法上提出它。
最佳答案
只需将其放入子查询中并从中选择
select row_number
from
(
SELECT id, @row_num := @row_num + 1 as row_number
FROM users
CROSS JOIN (select @row_num := 0) r
ORDER BY maxPoints
) tmp
where id = $id
顺便说一句,你也可以用子查询初始化 @row_num
变量,就像我在查询中所做的那样
关于php - 来自有序查询的Mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255969/