我最近搬到了一个共享主机,它使用的是MySQL 5.6.39而不是MariaDB 10.x,我想知道MySQL中以下MariaDB语句的等价物是什么?
SELECT rank,
total
FROM
(SELECT ROW_NUMBER() OVER (
ORDER BY `prestige` DESC, `xp` DESC) AS rank,
(SELECT COUNT(*)
FROM Modular_LS) AS total,
steamid
FROM Modular_LS) sub
WHERE sub.steamid = '%s'我已经走到这一步了,但现在我被卡住了
SELECT rank, total FROM
(SELECT @rank := @rank +1 as rank FROM Modular_LS,
(SELECT COUNT(*) FROM Modular_LS) AS total, steamid FROM Modular_LS) sub,
(SELECT @rank := 0) r ORDER BY `prestige` DESC, `xp` DESC) t;表结构包含列steamid,xp,prestige
我的目标是先按声望降序,然后按xp降序排列,然后使用WHERE查询查找特定玩家的排名。其输出包含排名(位置)和总数(记录总数)
发布于 2018-07-30 00:32:41
几个小时后,这就是我想出的解决问题的方法。
SELECT
sub.rank
,sub.total
FROM
(
SELECT
t.id
,t.steamid
,@rownum : = @rownum + 1 AS rank
,(
SELECT
COUNT (*)
FROM
Modular_LS
) AS total
FROM
Modular_LS t JOIN (
SELECT
@rownum : = 0
) r
ORDER BY
t.prestige DESC
,t.xp DESC
) sub
WHERE
sub.steamid = '%s'https://stackoverflow.com/questions/51509261
复制相似问题