rand()函数调用可以在0和1之间产生一个随机数。
注意:rand()这个函数对于几百条数据通常是看不出问题但如果数据量上万就会出现些问题。
下面讲解一下rand()函数的使用方式:
最简单的获取方式,但是此方式的获取数据效率非常差,具体代码如下:
select * from user order by rand() limit 1;
若需要传参数,具体代码如下:
select * from user where name='素文宅' order by rand() limit 1;
下面说一种高效率的写法,可以自定义任意条数,具体代码如下:
SELECT * FROM user WHERE userId >= ((SELECT MAX(userId) FROM user )- (SELECT MIN(userId) FROM user )) * RAND() + (SELECT MIN(userId) FROM user ) LIMIT 6;
若需要传参数,具体代码如下:
SELECT * FROM user WHERE userId >= ((SELECT MAX(userId) FROM user where userId=1)- (SELECT MIN(userId) FROM user where userId=1)) * RAND() + (SELECT MIN(userId) FROM user where userId=1) and userId=1 LIMIT 6;