mysql在指定范围取随机数问题

问题遇到的现象和发生背景

我想通过随机数随机取表中的一条记录,但是总会出现空值

用代码块功能插入代码,请勿粘贴截图

如图我的fname表id是1-504一共504条记录

img

运行结果及报错内容
SELECT name FROM fname_2067159127 WHERE id=(SELECT FLOOR(1 + (RAND() * 504))) LIMIT 1;

但是运行了有时会出现了空值,如图

img

img

你随机取的那个1+ 504 那个随机超出表的字段为空

可以把 id 也查出来看看 name 为 null 的 id 是多少,然后再看是什么问题

回答:不应该呀,这个范围没错呀,你把记录都查一下,即不要只打印name一个记录,把id也打印一下,看看是哪个id没查到,然后如果可以的话,附带一下你的表SQL语句,我这边也来测试一下