亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 MySQL SELECT 語句獲取排名位置

如何從 MySQL SELECT 語句獲取排名位置

PHP
桃花長相依 2023-12-15 10:43:14
我正在嘗試獲取 MySQL SELECT 語句的排名值(MySQL 不是我太熟悉的東西)。此查詢以正確的順序(通過更多的統計數據)為我提供了我正在尋找的正確結果,但我需要從結果中獲取特定值。SELECT id, stats,@curRank := @curRank + 1 AS rankFROM statistics.web_stats p, (SELECT @curRank := 0) r ORDER BY stats DESC;給了我這個預期的結果:id,stats,rank999,291,11137,82,21084,79,31111,60,41097,55,51094,51,61109,50,71112,49,81154,44,91082,36,10我需要做什么來獲取任何特定 id 的排名值,例如,在我的 PHP 代碼中,如何找到 id 1111 的排名位置(以返回“4”的排名值)?我不得不用鋤頭進一步從結果中提取值。我是否需要以某種方式保存它們,或者我可以進一步擴展 MySQL 查詢嗎?
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您可以使用以下任一解決方案:


您需要使用子查詢來維護排名位置。

這將為您提供排名為 4 的結果:


SELECT * 

FROM

(

    SELECT id, stats,

    @curRank := @curRank + 1 AS rank

    FROM statistics.web_stats p, (SELECT @curRank := 0) r 

    ORDER BY stats DESC

) AS stat

WHERE rank = 4;

您甚至可以使用LIMIT OFFSET進行查詢,因為它們已經按順序排列:

    SELECT id, stats,

    @curRank := @curRank + 1 AS rank

    FROM statistics.web_stats p, (SELECT @curRank := 0) r 

    ORDER BY stats DESC 

    LIMIT 4, 1


查看完整回答
反對 回復 2023-12-15
  • 1 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號