我是SQL的新手,我不认为这个问题很难回答。我有一个包含列名,分数和排名的游戏的高分表。我想知道每次添加新分数时我如何按降序排序表,以便表格始终按分数排序。
我知道这是错误的做法,但我希望这会使我的观点更加清晰。
UPDATE `HSTable`.`Highscores` ORDER BY `Highscores`.`score` DESC;
接近这个的正确方法是什么?
还有一种方法,是否有一种方法可以设置它,以便排名值始终保持在假设来自SQL的位置,例如,无论得分如何,第一位始终位于顶部?
答案 0 :(得分:1)
通常我们在从表中获取数据时使用order by
所以我们使用
SELECT * FROM `HSTable` ORDER BY `score` DESC
答案 1 :(得分:1)
使用RANK或DENSE_RANK等排名功能对结果进行排名。为了获得更好的性能,您可以添加以分数降序开头的聚簇索引。
答案 2 :(得分:0)
您可以使用SELECT
子句获得有序结果:
SELECT * FROM `HSTable` ORDER BY `score` DESC
答案 3 :(得分:0)
我不相信数据库表中数据的顺序应该真正重要,因为当您查询数据时,您可以按照您希望的方式对其进行排序。您希望以正确的顺序存储数据库中的数据的原因是什么?
答案 4 :(得分:0)
这不是在SQL中选择记录的正确方法。请改用:
SELECT * FROM `tablename` ORDER BY `id` DESC