MySql 和 MariaDB 之间的问题请求
Problem request between MySql And MariaDB
我需要你帮忙解决一个问题..
之前,我的网站使用MySql 5.5
现在,它似乎使用 MariaDB 10.0
我发现没有区别但是...
这个请求(我简化了请求以便更好地理解)
select * from ( select * from MYTABLE ) tmpTable ORDER BY tmpTable.id DESC
此请求适用于 Mysql 和 MariaDB
但是...
select * from ( select * from MYTABLE ORDER BY tmpTable.id DESC) tmpTable
我想如果我的订单在我的第二位select,他不考虑
此请求无效!结果很好,但是 ORDER BY 不起作用......它是按 ASCENDING 排序的,而不是像我在第二个 select ...
中指定的那样按 DESCENDING 排序
有人明白为什么吗? mysql 和 Maria DB 有区别吗?
非常感谢!
祝你有美好的一天
在 SQL 中,table 的行没有预定义的顺序。您需要 order by
才能对记录集进行排序。
第二个查询发生的情况是,子查询创建了一个派生的 table,然后在外部查询中使用。您对子查询中的行进行排序这一事实并没有什么不同:从外部查询的角度来看,派生的行 table 没有固有的顺序。
换句话说,不能保证内部排序传播到外部范围。如果您希望结果集排序一致,请在外部范围中使用 order by
。
我需要你帮忙解决一个问题..
之前,我的网站使用MySql 5.5 现在,它似乎使用 MariaDB 10.0
我发现没有区别但是...
这个请求(我简化了请求以便更好地理解)
select * from ( select * from MYTABLE ) tmpTable ORDER BY tmpTable.id DESC
此请求适用于 Mysql 和 MariaDB
但是...
select * from ( select * from MYTABLE ORDER BY tmpTable.id DESC) tmpTable
我想如果我的订单在我的第二位select,他不考虑
此请求无效!结果很好,但是 ORDER BY 不起作用......它是按 ASCENDING 排序的,而不是像我在第二个 select ...
中指定的那样按 DESCENDING 排序有人明白为什么吗? mysql 和 Maria DB 有区别吗?
非常感谢! 祝你有美好的一天
在 SQL 中,table 的行没有预定义的顺序。您需要 order by
才能对记录集进行排序。
第二个查询发生的情况是,子查询创建了一个派生的 table,然后在外部查询中使用。您对子查询中的行进行排序这一事实并没有什么不同:从外部查询的角度来看,派生的行 table 没有固有的顺序。
换句话说,不能保证内部排序传播到外部范围。如果您希望结果集排序一致,请在外部范围中使用 order by
。