我有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);
答案 0 :(得分:0)
首先,您应考虑以下几点:
但是,我会尝试给您一个提示-希望能帮到您!
例如,您要根据用户的用户名对其顺序进行排序:
通过“标记” 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
的更多信息此致