有没有办法编写一个从表中选择随机行的查询?
SELECT * FROM Foo ORDER BY RAND() LIMIT 1;
始终返回表格中的第一条记录。
此外,如果我写SELECT RAND() FROM Foo LIMIT 1
,它总是显示一个随机值,但它是< 1
例如:
SELECT RAND() FROM Foo LIMIT 1
result 1: 0.5425
result 2: 0.34759
result 3: 0.65478
函数explanation已经说它返回0.0到1.0之间但是是否可以编写一个显示表中随机行的查询? /
答案 0 :(得分:0)
前提是您的id列是自动增量整数
从Foo中选择*,其中id = floor(rand()* num_cols + 0.5)
更通用的答案是在外部构建查询并随机生成外部整数。这是因为phoenix的查询解析器不允许限制/偏移中的函数。因此,生成一个随机数并将其插入偏移量
从Foo中选择*,其中limit = 1 offset =?