ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) 是否保留顺序?

vee*_*eru 5 mysql sql sql-order-by

我计划ROW_NUMBER() OVER (ORDER BY (SELECT NULL))在选择查询中使用,这些查询没有任何适当的数据列可在 order-by 子句中使用。

一般来说,如果我使用有效的列数据,ROW_NUMBER()每次执行的顺序都会完全相同。ORDER BY通过使用ORDER BY (SELECT NULL),顺序是什么ROW_NUMBER(),它会随着每次执行而改变吗?

如果顺序没有改变(从我这边测试,顺序没有改变),有什么用吗?

Sal*_*n A 7

如果没有显式子句,则不同执行中的特定行ORDER BY可能会得到不同的结果。ROW_NUMBER()与之相同的ORDER BY (SELECT NULL)是,要么是绕过语法要求的 hack,要么是语法糖;它不执行命令。

是的,您会得到相同的结果,但不能保证