【问题标题】:select all data with position of given id选择具有给定 id 位置的所有数据
【发布时间】:2014-04-01 08:18:31
【问题描述】:

这是我的桌子

   id   |   name   |  userid  |  score  |      date      |
   ------------------------------------------------------------
    1   |   john   |    1     |   44    |  2013-03-2 
    2   |   mary   |    2     |   59    |  2013-03-5  
    3   |   john   |    12    |   38    |  2013-03-8 
    4   |   elvis  |    3     |   19    |  2013-02-10 
    5   |   john   |    11    |   1002  |  2013-01-11
    6   |   johnah |    10    |   200   |  2013-01-11

我想按最高分显示给定用户 ID 订单的位置数。

如果我在查询中给出用户 ID 12,那么它显示用户 12 的位置编号 5 取决于最高分

【问题讨论】:

  • 根据您提供的数据,我看到它位于第 5 位
  • 从数据库中选择所有记录并使用ORDER BY score。然后遍历结果并搜索给定的用户 ID。计算在找到用户 ID 之前循环输入了多少次并得到结果。

标签: php mysql sql


【解决方案1】:

我想这就是你想要的。

SELECT COUNT(*)+1 FROM table_name WHERE userid!=12 AND 
score>(SELECT score FROM table_name WHERE userid=12);

【讨论】:

  • 如果我在查询中给出用户 ID 12,那么它显示用户 12 的位置编号 5 取决于最高分
  • 这不是你想要的吗?我的意思是这个查询应该适合你@user3484136
【解决方案2】:

试试这个:

SELECT *  
FROM table_name 
WHERE id =(SELECT max( userid ) FROM table_name)

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2018-04-08
    相关资源
    最近更新 更多