排序无效

8.0.11-TiDB-v8.5.3 排序无效
8.0.11-TiDB-v7.5.4 排序无效
5.7.25-TiDB-v6.5.1 排序有效

sql: select * from ( select * from test order by name desc ) limit 10;
问题:加了一层select 排序就没有效果了,是新版本都有这个问题吗

2 个赞


执行计划里的keep order 为false,是不是有什么参数可以调整啊

1 个赞

这种算不算bug?还是有其他考虑?坐等大佬解答

1 个赞

你把完整的 SQL 发出来看看~

1 个赞

create table test(age int);
insert into test values(2),(4),(4),(1),(4),(2),(3),(5);

select * from (select * from test order by age desc ) aa

1 个赞

没看懂

1 个赞

select * from (select * from test order by age desc ) aa这个查出来排序是乱的

1 个赞

不是 bug,符合 SQL 标准,有个系统变量可以控制行为 tidb_remove_orderby_in_subquery系统变量

1 个赞

这种不算bug吧

1 个赞

ORDER BY 不保证最终结果的顺序,TiDB 优化器也可能忽略子查询的排序

1 个赞

外面再加一个order by试试呢

正常的,加参数

牛逼啊

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。