我做了一些研究并最终得到了这个查询。
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 ...(其他参数)。
是否可以通过一个组合查询来完成它,还是需要在php端拆分这些查询?我无法在句法上提起它。
答案 0 :(得分:3)
只需将其放入子查询中并从中选择
即可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
变量,就像我在查询中所做的那样