php - 如何对mysql数据进行排序并找到位置?
问题描述
我有 3 行的 mysql 数据(user_id、exam_id、marks)。我想根据标记和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);
解决方案
首先你应该考虑几件事:
- 在发布新问题之前,您应该始终更好地搜索已经回答的问题(它是堆栈溢出代码的一部分)
- 带来更多您想要的信息,尽可能清晰
- 提供更多细节(例如:你的 sql 结构)
但是,我会尝试给您一个提示-希望它有所帮助!
例如,您想根据他们的标记订购您的 user_id:
从 my_table order by "marks" asc 中选择 user_id;
例如,您想根据他们的分数和exam_id 订购您的 user_id :
按“marks”、“exam_id” asc 从 my_table 顺序中选择 user_id;
例如,您想根据用户的分数创建一种排名:
SET @rank := 0; SELECT *, @rank := @rank + 1 AS rank FROM my_table order by tags ASC;
例如,您想从特定的
SET @rank := 0; SELECT * from (select *, @rank := @rank + 1 FROM my_table order by tags ASC) AS rank where user_id = 2;
希望这可以帮助!您可以在此处获得有关 mysql 排名的更多信息
问候,
推荐阅读
- tsql - 转义文本 t-sql 中的保留关键字
- c# - 在 C# 中正确解析 json
- java - .clone() 对数组做了什么?
- java - 我将 Spring 库更新到 5.2.6 为 log4j 提供了 Class Cast 异常
- javascript - 无法通过firestore登录
- python - 难以创建包含值列表的 dict
- mongodb - 无法从 aws 中的私有子网内部连接到 mongodb
- websocket - JSF 2.3 Websockets 在使用 PrimeFaces MenuItem 和 ajax=true 时抛出 NullPointerException
- javascript - 为什么我得到的功能没有定义?
- tensorflow - 使用 tensorflow 的 DNN 估计器无法在 GCP 的 AI 平台上获得可重现的结果