原创

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),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信