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文档更加明确:
可选的ORDER BY子句具有以下通用形式:
ORDER BY expression [ ASC | DESC | USING operator ] [, ...]
expression可以是输出列的名称或序号(SELECT列表项),也可以是由输入列值组成的任意表达式.
对于你的第二个问题:
ORDER BY RAND()
或者ORDER BY RANDOM()
说它的内容:你的行被扭转了,你可以随机顺序得到它们.所以,如果你做了一个,SELECT * FROM ... ORDER BY RAND() LIMIT 1
你从表中选择一个(= 1)随机行.
ORDER BY SUM(Column)
只有与GROUP BY
陈述相结合才有意义.