繁体   English   中英

按不存在的列排序?

[英]Ordering by a column that doesn't exist?

我正在看数据库编程书(它使用MySql)中的一个示例,该示例如何从表中选择随机行:

SELECT * FROM Bugs ORDER BY RAND() LIMIT 1; 

我对如何通过不存在的列进行订购感到困惑。 那等于

SELECT *, RAND() AS temp FROM BUGS ORDER BY temp LIMIT 1;

除了从结果中取消temp列?

基本上是同一回事。 唯一的区别是该值不在结果集中。 还有另一个细微的差别。 selectrand()应该在Bugs每行评估一次。 我认为按order byrand()可能会更频繁地求值(这取决于实现方式)。 在这种情况下,随机顺序无论哪种方式都是随机顺序,因此这种细微差别不会产生任何影响。

不要因没有按selectorder by出现表达式而感到困惑。 这并不少见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM