原创

Mysql 数据库中表随机任意获取一条数据

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;


关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信