由RAND()的SQL命令

时间:2015-08-29 05:37:15

标签: mysql sql

不明白为什么RAND()的订单会以随机顺序返回记录? RAND()返回0到1之间的值,我想我们应该按列名排序?

感谢是否有人可以解释为什么RAND()的订单会以随机顺序返回行。谢谢。

BTW,我正在使用MySQL Workbench / MySQL。

提前谢谢,

1 个答案:

答案 0 :(得分:3)

ORDER BY RAND()将整个表复制到临时表中,并添加一个具有随机值的新列。最后,它按该列对数据进行排序。

这当然会对性能产生影响,因此不建议这样做。

了解更多信息:

http://www.roberthartung.de/mysql-order-by-rand-a-case-study-of-alternatives/

http://wanderr.com/jay/order-by-slow/2008/01/30/

https://bugs.mysql.com/bug.php?id=65177