【发布时间】:2015-11-23 19:46:28
【问题描述】:
不明白为什么 order by RAND() 会以随机顺序返回记录? RAND() 返回一个介于 0 和 1 之间的值,我认为我们应该按列名排序?
如果有人能解释为什么 order by RAND() 会以随机顺序返回行,不胜感激。谢谢。
顺便说一句,我正在使用 MySQL Workbench/MySQL。
提前致谢,
林
【问题讨论】:
不明白为什么 order by RAND() 会以随机顺序返回记录? RAND() 返回一个介于 0 和 1 之间的值,我认为我们应该按列名排序?
如果有人能解释为什么 order by RAND() 会以随机顺序返回行,不胜感激。谢谢。
顺便说一句,我正在使用 MySQL Workbench/MySQL。
提前致谢,
林
【问题讨论】:
ORDER BY RAND() 将整个表复制到一个临时表中,并添加一个具有随机值的新列。最后,它按该列对数据进行排序。
这当然会影响性能,所以不推荐。
更多信息:
http://www.roberthartung.de/mysql-order-by-rand-a-case-study-of-alternatives/
【讨论】: