备注:测试数据库版本为MySQL 8.0
如需要scott用户下建表及录入数据语句,可参考:
scott建表及录入数据sql脚本
问题:
从表中随机返回n条记录。可以修改下面的语句,要求下次执行时产生不同的结果集。
select ename,job from emp;
mysql> select ename,job from emp;
+--------+-----------+
| ename | job |
+--------+-----------+
| SMITH | CLERK |
| ALLEN | SALESMAN |
| WARD | SALESMAN |
| JONES | MANAGER |
| MARTIN | SALESMAN |
| BLAKE | MANAGER |
| CLARK | MANAGER |
| SCOTT | ANALYST |
| KING | PRESIDENT |
| TURNER | SALESMAN |
| ADAMS | CLERK |
| JAMES | CLERK |
| FORD | ANALYST |
| MILLER | CLERK |
+--------+-----------+
14 rows in set (0.00 sec)
解决方案:
同时使用内置的rand函数、limit和order by;
select ename,job from emp order by rand() limit 5;
mysql> select ename,job from emp order by rand() limit 5;
+-------+-----------+
| ename | job |
+-------+-----------+
| JAMES | CLERK |
| FORD | ANALYST |
| KING | PRESIDENT |
| CLARK | MANAGER |
| ADAMS | CLERK |
+-------+-----------+
5 rows in set (0.00 sec)
-- 第二次执行与第一次结果集不同
mysql> select ename,job from emp order by rand() limit 5;
+--------+----------+
| ename | job |
+--------+----------+
| SMITH | CLERK |
| WARD | SALESMAN |
| MARTIN | SALESMAN |
| BLAKE | MANAGER |
| JAMES | CLERK |
+--------+----------+
5 rows in set (0.00 sec)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




