从有序查询中查询Mysql

时间:2017-09-16 16:19:42

标签: php mysql

我做了一些研究并最终得到了这个查询。

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端拆分这些查询?我无法在句法上提起它。

1 个答案:

答案 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变量,就像我在查询中所做的那样