SELECT *
FROM `users`
WHERE `lose` > '1'
AND `win` > '1'
ORDER BY win DESC
LIMIT ".$lowerlimit.", 30
这适用于游戏网站上的排行榜。问题是:
Players Win Lose
Player 1: 94 40
Player 2: 91 56
Player 3: 9 12
----------------------------
Player 12: 82 50
Player 13: 8 10
玩家12必须在第3位。我做错了什么?
答案 0 :(得分:2)
现在,它按字母顺序排序。将发生的所有数据都作为数字并不重要。您需要更新架构以将赢或输存储为数字数据类型,例如:
CREATE TABLE users
(
players text,
win int,
lose int
);
然后将您的查询更改为:
SELECT *
FROM `users`
WHERE `lose` > 1
AND `win` > 1
ORDER BY win DESC
LIMIT ".$lowerlimit.", 30
另外,我想在排行榜上,你想让那些永远迷失的人,对吗?您可能想要删除WHERE lose > 1
答案 1 :(得分:0)
如果输赢不是text / ntext列,那么您可以尝试使用以下代码
SELECT *
FROM users
WHERE cast(lose as int) > 1
AND cast(win as int)> 1
ORDER BY cast(win as int) DESC
LIMIT ".$lowerlimit.", 30