我想按Jogadores
的价格订购我的表Total
,我可以通过写这个来实现:
ALTER TABLE `Jogadores` ORDER BY `Total` DESC ;
我的问题是,每次编辑Total
值或插入新行时,如何将其用作触发器?
我正在使用phpMyAdmin
由于
答案 0 :(得分:1)
我不确定我理解你要完成的任务。我将假设您希望在检索它时以这种方式对表进行排序。如果这是真的,您可以在检索时对其进行排序,而不是更改表格。
SELECT *
FROM Jogadores
ORDER BY Total DESC;
答案 1 :(得分:0)
为什么呢?这通常不是SQL数据库的工作方式
如果某些总数相同怎么办?排序它们的第二种方法是什么?
在操作数据库中存储总计通常也不是一个好主意。这是一个数据仓库吗?
在total
上添加索引并创建按该列排序的视图可能会更容易。
答案 2 :(得分:0)
阅读新评论后,您想要的是不可行的。 See this answer
正如其他人所说,表中行的物理顺序无关紧要,因为在查询时总是可以排序。如果您正在考虑clustered indexes,那么您需要做的就是正确定义主键。
主键索引的InnoDB术语。 InnoDB表存储基于主键列的值进行组织,以加速涉及主键列的查询和排序。为获得最佳性能,请根据性能最关键的查询仔细选择主键列。因为修改聚簇索引的列是一项昂贵的操作,所以选择很少或从不更新的主列。
因此聚簇索引可以达到您想要的效果,但它可能不是您实际需要的。您知道,如果您处理的行数不到一百万(粗略估计),聚集索引的加速几乎为零。