mysql取表中随机一条记录

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

全表数据

随机数

查询结果1

查询结果2

回答

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

以上是 mysql取表中随机一条记录 的全部内容, 来源链接: utcz.com/a/48481.html

回到顶部