作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 SELECT * FROM TABLE ORDER BY RAND()
有效?我以为 ORDER BY
只适用于列。
那么 ORDER BY RAND()
或 ORDER BY SUM()
到底是什么意思?
最佳答案
您可以按几乎所有内容、函数(如 RAND())、聚合(如 SUM())等进行排序。
例如,MySQL-Documentation声明为语法:
[ORDER BY {col_name | expr | position}
或者 Postgresql Documentation甚至更明确:
The optional ORDER BY clause has this general form:
ORDER BY expression [ ASC | DESC | USING operator ] [, ...]
expression can be the name or ordinal number of an output column (SELECT list item), or it can be an arbitrary expression formed from input-column values.
第二个问题:
ORDER BY RAND()
或 ORDER BY RANDOM()
做它所说的:你的行被洗牌,你得到它们的随机顺序。因此,如果您执行 SELECT * FROM ... ORDER BY RAND() LIMIT 1
,您会从表中选择一个(=一个)随机行。ORDER BY SUM(Column)
只有与 GROUP BY
语句结合使用才有意义。 关于sql - ORDER BY 只适用于列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623884/
我是一名优秀的程序员,十分优秀!