php - 使用 MySQLi 和 PHP 的排名系统(多次检查)

标签 php mysql sql select sql-order-by

我有这个函数设置来获取用户排名

function rank($user) {
    $q = query("SELECT * FROM members ORDER BY level DESC");
    $rank = 0;
    while($row = mysqli_fetch_array($q)) {
        $rank++;
        if($row['username'] == $user) {
            return $rank;
        }
    }
}

请注意:query() 是一个自动查询数据库的函数。

这是返回错误,我想要的是:

username    level    money    exp    id
john        3        2        213    4
bob         3        132      23     5
mark        4        3423     2      6

我希望它根据级别排序,但如果两个用户(johnbob)具有相同的级别,则求助于 exp,然后求助于 money,然后用户 ID。

最佳答案

您可以在order by 子句中给出多个表达式:

SELECT * FROM members ORDER BY level DESC, exp DESC, money DESC, user_id DESC

关于php - 使用 MySQLi 和 PHP 的排名系统(多次检查),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41202899/

相关文章:

php - 带逗号的单独 PHP 数组的数据

mysql - 系统不喜欢使用索引

sql - 选择前 10 行,然后决定之后要包含哪些行

mysql - Nodejs到mysql连接错误

sql server 2008 如何断开每个人与我的数据库的连接?

sql - 如何在SQL查询中获取缓存未命中?

php - json 和 php 类之间的映射器

php - 如何使用 PHP 将数据发送到另一个页面?

php - Laravel 响应 Cache-Control header 始终包含 'no-cache'

mysql - 使用 MySQL 聚合重叠事件