mysql取表中随机一条记录

2020-09-28 11:05发布

如题,在mysql中想取表中随机一条记录,思路是取到rownum,然后获取1~总条数的随机数,where条件rownum = 此随机数,可是结果时而为空,时而为多条,求解。

全表数据

随机数

查询结果1

查询结果2

3条回答
时光不老,我们不散
2楼-- · 2020-09-28 11:24

看你产生的随机数

查看更多
冷血范
3楼-- · 2020-09-28 11:35
select * from table1   order by rand() LIMIT 1
查看更多
乱世女痞
4楼-- · 2020-09-28 11:41

这是rand函数导致的,如果你用sqlserver,将不会出现此问题,因为整个floor表达式的值会在查询之前就计算好了,而mysql的查询机制仿佛是在查询时,逐行匹配,每扫描一行rand一次,如果floor结果跟rownum匹配就返回,不匹配就返回,导致记录条数不固定

查看更多
登录 后发表回答