我的数据库中有名字,我想为比赛画一个名字。
有人对此有想法吗?
谢谢 !!
像这样的查询可以工作
SELECT * FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1;
SELECT * FROM table WHERE num_value >= RAND() * (SELECT MAX(num_value) FROM table) LIMIT 1
如果对 num_value 进行了索引,则无论表大小如何,这都会在恒定时间内起作用。一个警告:这假设 num_value 在 0..MAX(num_value) 范围内均匀分布。如果您的数据集严重偏离此假设,您将得到偏斜的结果(某些行会比其他行更频繁地出现)。