select SQL_NO_CACHE c.id FROM document as c JOIN ( select ROUND( rand() * ( (SELECT MAX(id) FROM document)) ) as id ) AS T where c.id >= T.id limit 1;
是不是因为你的document表里的主键ID的值都很大很大,用这个方法产生的随机数都小于表document里ID最小的值,这样就可能 出现楼主所说的每次执行取到的那条数据都是同一条(document表中ID最小的那条),楼主查查看呢
楼主给的这个例子并不要求ID连续。注意这儿使用的是 c.id >= T.id
56,682
社区成员
56,709
社区内容
加载中
试试用AI创作助手写篇文章吧