这是rand函数导致的,如果你用sqlserver,将不会出现此问题,因为整个floor表达式的值会在查询之前就计算好了,而mysql的查询机制仿佛是在查询时,逐行匹配,每扫描一行rand一次,如果floor结果跟rownum匹配就返回,不匹配就返回,导致记录条数不固定
这样。。。 感谢大佬解答
select * from table1 order by rand() LIMIT 1
大佬,能解释下上述现象吗
@我恰芙蓉王: 随机排序这个思路
@小鸣的微笔记: 您这个思路我能理解,我只是不明白我提问的那两个查询结果
看你产生的随机数
我产生的随机数也只会对应t表的一条rownum啊,不明白为什么会匹配不上或者匹配到多条