[英]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.