随机获取数据的业务场景,想必大家都有遇到过,今天我们分析一下如何正确的显示随机消息.
mysql> CREATE TABLE `words` (
`id` int(11) NOT NULL AUTO_INCREMENT...end while;
end;;
delimiter ;
call idata();
上面是我们插入了10000行记录,现在我们要随机选择三个单词,又有什么办法实现呢....select * from t where id >= @X limit 1;
虽然上面可以获取一个数,但是他并不是一个随机数,因为如何表中的id可能存在空洞,导致每一行的获取概率并不一样,如id=1,2,4,5...floor函数在这里的作用,就是取整数部分
获取 limit Y ,1,得到一行数据
对应的sql如下
mysql> select count(*) into @C from t;
set @Y =...现在如果要获取三个随机数,根据随机算法2的思路
获取整张表的总行数C
根据同样的共识获取Y1,Y2,Y3
再执行limit Y,1.获取三个随机数
对应的sql语句如下
mysql> select