繁体   English   中英

如何在PHP中使用mysql查询获得排名

[英]How to get rank using mysql query with PHP

我有以下代码,我只想根据用户的总余额获得其联赛排名。 我怎样才能做到这一点?

// Set League Rank by User
global $post;
$post_author = $post->post_author;
$post_status = 'publish';
$meta_key = 'balance';
$rank = $wpdb->get_var( $wpdb->prepare(
    "
    SELECT *, @rownum := @rownum + 1 from
    (
    SELECT 
        SUM(meta_value) as balance, 
    FROM {$wpdb->postmeta} pm
    INNER JOIN {$wpdb->posts} p ON pm.post_id = p.ID
    JOIN    (SELECT @curRow := 0) r;
    WHERE pm.meta_key = %s AND p.post_author = %s AND p.post_status = %s
    order by balance desc)x, (SELECT @rownum := 0) r
    ",
    $meta_key, $post_author, $post_status
    ) );

可以帮我吗?

谢谢。

尝试这样的事情:

SELECT 
    ROUND (SUM(meta_value),2) as balance, 
    @curRow := @curRow + 1 AS rank
FROM {$wpdb->postmeta} pm
INNER JOIN {$wpdb->posts} p ON pm.post_id = p.ID
JOIN    (SELECT @curRow := 0) r;
WHERE pm.meta_key = %s AND p.post_author = %s AND p.post_status = %s
order by balance desc

我可能会误解您的等级含义,因此,如果这种方法行不通,请进一步解释您到底需要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM