使用RAND()从表中随机选择不能正常工作

时间:2018-12-02 12:57:06

标签: mysql

我创建了一个由两列组成的表idname

create table City(id integer, name varchar(100));
insert into City(id, name) values (1, "Jakarta"), (2, "Bandung"), (3, "Tangerang"), (4, "Depok"), 
(5, "Surabaya"), (6, "Lampung"), (7, "Balikpapan"), (8, "Bogor");

我想通过id随机选择一行。代码select floor(rand()*8) + 1工作正常。它确实给出了从1到8的随机整数。

select * from City where id = floor(rand()*8) + 1

应始终仅从City返回一行。但是当我尝试时,它有时返回不止一行,甚至没有。为什么是这样?谢谢。

1 个答案:

答案 0 :(得分:0)

由于表中只有8个城市,因此您可以这样做:

select *
from City
order by rand()
limit 1