gpt4 book ai didi

php - sql按用户记录距离的总和对用户进行排序

转载 作者:行者123 更新时间:2023-11-29 00:35:25 24 4
gpt4 key购买 nike

我正在处理一个表格,其中包含用户报告的锻炼距离的日志。我想根据用户记录的距离之和对用户进行排名。

首先我找到所有的用户 ID:

select distinct wordpress_user_id from wp_exercise_log

然后我遍历它并获取名称和总和(距离):

    foreach($users as $user) {
// DISTANCE
$user_distance = floor($wpdb->get_var( "select sum(distance) from wp_exercise_log where wordpress_user_id='$user'"));
// FULL NAME
$user_info = get_userdata($user);
$full_name = $user_info-> user_firstname . ' ' . $user_info-> user_lastname;
}

这是我的问题:除非我将它们附加到多维数组并使用 PHP 进行排序,否则我不确定如何对用户进行排名。

有没有更好的方法来选择所有这些数据并使用一个 SQL 查询对其进行排序?

最佳答案

select
wordpress_user_id,
sum(distance) as user_distance
from
wp_exercise_log
group by
wordpress_user_id
order by
user_distance desc

请注意 ORDER BY GROUP_FUNCTION() 总是会导致性能问题。

您可以考虑将一些列 user_total_distance 添加到您的用户表中,并在 wp_exercise_log 中每次更改时更新它。

关于php - sql按用户记录距离的总和对用户进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14552890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com