设置要反转的MySQL表的默认模式顺序

设置要反转的MySQL表的默认模式顺序,mysql,sql,database,Mysql,Sql,Database,我当前正在运行此查询: SELECT t.videolink, t.userid, t.tag FROM (SELECT * FROM tagstrend ORDER BY timestamp DESC) AS t WHERE t.timestamp > ? GROUP BY t.tag ORDER BY SUM(t.tagcount) DESC LIMIT ?, 20; 我所做的是在运行查询的其余部分之前颠倒我所选

我当前正在运行此查询:

SELECT t.videolink, t.userid, t.tag
    FROM (SELECT * FROM tagstrend ORDER BY timestamp DESC) AS t
        WHERE t.timestamp > ?
        GROUP BY t.tag
        ORDER BY SUM(t.tagcount) DESC
        LIMIT ?, 20;
我所做的是在运行查询的其余部分之前颠倒我所选择的表的顺序,因为当我使用“groupby”时,我需要它来获取最上面的结果,即数据库中最近的一行


但是,这样做会影响查询的性能/速度,因为它需要颠倒表的顺序才能进行查询

我的问题是,有没有办法将表的默认顺序设置为反转?因为我总是以相反的顺序从这个表中选择

除非有人知道如何按数据库中最近的行进行分组?

“但是,这样做会影响查询的性能/速度,因为它需要颠倒表的顺序才能查询。”


我认为那不是真的。订购人。。。。ASC和订购人。。。。DESC应具有相同的性能。测试并查看。

为什么要在
SELECT*
上调用
SELECT
,而不是只编写一个调用来满足您的需要?因为我需要整个表,所以我只需要按相反的顺序@Tad调用它。结果的顺序与原始表的顺序无关,因为您是通过聚合函数排序的。关系数据库中的表没有顺序。“颠倒桌子的顺序”这个问题毫无意义。只有
select
语句的结果才能有顺序(并且只有在指定了
orderby
时才有顺序)。@Barmar:我认为OP试图使用MySQL的这个未记录的特性,即既没有聚合也没有包含在GROUPBY中的列的返回值是在组的行集中首先遇到的值。因此,他们从以特定方式预先排序的数据集中进行选择,以获得所需的结果。同样,这没有被记录下来,但这至少是OP在他们的查询中所做的。另请参见另一种解释,因为我不确定我的解释是否足够清楚。