原创

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),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信