如何排序mysql数据并找到位置?

时间:2018-09-03 01:44:27

标签: php mysql sorting

我有3行(user_id,exam_id,标记)的mysql数据。 我想找到基于标记和exam_id的每个用户排名位置。 如何用php代码进行SQL查询。请帮我。提前致谢。

这是部分代码

$p = "SELECT * FROM IDTABLE WHERE EID = '$info[EID]'";
$rowp = mysqli_query($conn, $p);
while (($ret = mysqli_fetch_assoc($rowp)) > 0) {
    $q = "SELECT * FROM INFOTABLE WHERE EID = '$ret[EID]'";
    $rowq = mysqli_query($conn, $q);
    while (($retq = mysqli_fetch_assoc($rowq)) > 0) {                                
        $user[$ret['EID'] . $retq['UID']] = $retq['Marks'];                                
    }
}
arsort($user);
var_dump($user);

1 个答案:

答案 0 :(得分:0)

首先,您应考虑以下几点:

  • 发布新的问题(这是堆栈溢出代码的一部分)之前,您应该总是更好地搜索已经回答的问题
  • 尽可能清楚地带出您想要的更多信息
  • 提供更多详细信息(例如:您的sql结构)

但是,我会尝试给您一个提示-希望能帮到您!

  • 例如,您要根据用户的用户名对其顺序进行排序:

    通过“标记” asc从my_table顺序中选择user_id;

  • 例如,您要根据用户的用户名和标记他们的用户名订购等级:

    通过“标记”,“ exam_id” asc从my_table顺序中选择user_id;

  • 例如,您要基于用户的标记创建一种排名:

    SET @rank:= 0; 选择     *,     @rank:= @rank +1 AS等级 来自my_table 按标记ASC排序;

  • 例如,您想要从特定的

    获取排名号

    SET @rank:= 0; 选择*从(选择     *,     @rank:= @rank +1 来自my_table 按标记排序ASC)AS等级,其中user_id = 2;

希望这会有所帮助!您可以获得有关mysql排名here

的更多信息

此致