- 從一個擁有自增id(
id>0
)的表T里,隨機取一條數(shù)據(jù)恢暖?
方案: 傳入一個隨機數(shù)r,用此隨機數(shù)對最大的id進行取余
select * from T where id >= (select r%max(id) from T) limit 1;
- 從一個擁有自增id(
id>0
)的表T里,在指定范圍CONDITION內(nèi)隨機取一條數(shù)據(jù)涉兽?
方案: 傳入一個隨機數(shù)r, 生成指定范圍內(nèi)【即id區(qū)間】的一個隨機數(shù)即可
select * from T where CONDITION and id >= (select min(id) + IFNULL(r%(max(id) -min(id)), 0) from T where CONDITION) limit 1
注: 當max(id)和min(id)相同時深碱,r%(max(id)-min(id)結(jié)果為NULL