SELECT *
FROM `experience`
WHERE `reqexp` <> '4793'
ORDER BY 'lvl' DESC
LIMIT 1
这是我想要做的。我正在为客户端制作在线游戏,并且需要能够使用具有随机值的mysql查询,并找到与该经验量相关联的级别。在这种情况下,我需要找到数据库中已存在的低于4793的下一个值,以便我可以确定玩家的适当级别。任何想法?
答案 0 :(得分:4)
不是按lvl
排序(用'
单引号而不是反引号错误引用,因此被视为字符串文字),您需要按reqexp DESC
排序并查看仅适用于值< 4793
。
SELECT *
FROM `experience`
WHERE `reqexp` < 4793
ORDER BY `reqexp` DESC
LIMIT 1
如果您仍然需要按lvl
进行子订单,则:
ORDER BY `reqexp` DESC, `lvl`