SELECT * FROM t_room WHERE fid >=
(((SELECT MAX(fid) FROM t_room) -(SELECT MIN(fid) FROM t_room)) * RAND() + (SELECT MIN(fid) FROM t_room)) LIMIT 10以上写法如果数据不满10条,这有可能返回数据结果的条数也是随机的。
select * from t_room order by rand() limit 10以上写法查询速度相对慢点,但可以避免上面的漏洞
本文介绍两种从数据库中进行随机查询的方法。一种通过计算最大和最小ID间的随机值来选取记录,这种方法在数据不足十项时可能产生不同数量的随机结果。另一种则是直接使用ORDER BY RAND()进行排序并限制结果数量,虽然查询速度较慢,但能确保每次返回相同数量的随机记录。
1864

被折叠的 条评论
为什么被折叠?



