select * from table rand()如何工作?

时间:2011-04-24 03:19:04

标签: mysql random

我有一个简单的问题。

当我执行“select * from table rand()”时,我得到rand#行。这是与表限制rand()中的select *相同(虽然它不起作用)?

4 个答案:

答案 0 :(得分:2)

数据库查询中的where子句只是一个导致true或false值的语句,因为表中的每一行都被考虑包含在结果集中。通常,T / F计算涉及查询表中的一个或多个字段,但这不是必需的。

执行... WHERE rand()时,您基本上会获得每行0 <= N < 1范围内的随机值。 MySQL通过将值四舍五入为0或1将其转换为布尔值。因此随机数0.5-> 0.999变为1(TRUE)和随机数0 - > 0.49999回合到0(FALSE)。

答案 1 :(得分:0)

Limit您的MySQL查询结果在一定数量范围之间的结果。而Select * from table where rand()搜索整个表并选择随机

答案 2 :(得分:0)

使用时

... LIMIT RAND()

你需要考虑RAND()函数的作用 - 它返回一个介于0.0和1.0之间的值 - 所以它实际上是LIMIT(0) - 你的返回结果总是为零。

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand

答案 3 :(得分:0)

rand()始终评估为0到1之间的数字。

如果在limit子句中使用它,它将不返回任何行,因为它的计算结果小于1行。

如果在where子句中使用它,它应始终求值为true,因为它总是大于1,并且将返回所有行,而不是随机行数。

相关问题