我创建了一个由两列组成的表id
和name
。
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
返回一行。但是当我尝试时,它有时返回不止一行,甚至没有。为什么是这样?谢谢。
答案 0 :(得分:0)
由于表中只有8个城市,因此您可以这样做:
select *
from City
order by rand()
limit 1