php - 来自有序查询的Mysql查询

标签 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 ...(其他参数)。

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/

相关文章:

使用 GROUP BY 时 MySQL 查询速度慢

php - MySQLI 问题

php - 如何在两个表的两个特定列中生成 '%search%'?

php - 转换 SQL 的日期格式

php - 如何从克隆的 laravel 项目生成迁移(表?)到本地数据库?

ios - 使用 Swift 从 MySQL 数据库检索信息

mysql - 连接上的嵌套查询?

php - Mac OS X El Capitan 需要 Mcrypt PHP 扩展

javascript - jVectorMap 加载 ajax 数据时出现问题

mysql新用户访问被拒绝