开发中遇到个小问题,需要随机抽取题库中的几道题。想了想怎么靠SQL搞定,找到了个办法。

SELECT q.`id`, q.`type`, q.`question`,
q.`true_answer`, q.`false_answer_1`, q.`false_answer_2`, q.`false_answer_3`,
q.`timestamp`
FROM questions q
where type = 1
order by RAND() limit 10;

order by RAND(),这样就可以进行随机取值。

MySQL的RAND()函数可以用来取一个0,1之间的随机值:

mysql> select rand();
+---------------------+
| rand()              |
+---------------------+
| 0.22976777165175208 |
+---------------------+
1 row in set (0.00 sec)

也可以进行随机排序查询:

mysql> select id, question from questions ORDER BY RAND() LIMIT 10;
+-----+---------------------------------------------------------------------+
| id  | question                                                            |
+-----+---------------------------------------------------------------------+
| 135 | 下列哪项技术不属于纳米技术范畴?                                         |
| 115 | 人体中最先衰老的器官是()                                              |
| 149 | 区块链技术的特征不包括下列哪个选项?                                      |  
| 102 | ()因发现青蒿素治疗疟疾的新疗法而成为第一位获得诺贝尔科学奖项的中国本土科学家   |
| 112 | 1896年前苏联最大核电站()发生严重爆炸事故                                |
| 118 | Android是用什么编程语言写的?                                          |
| 137 | 「纳米」是一种?                                                      |
| 141 | 个人电脑的输入设备不包括?                                              |
| 114 | 大气中二氧化碳减少会导致()                                            |
| 127 | 飞机上俗称的「黑匣子」实际为什么颜色?                                    |
+-----+---------------------------------------------------------------------+
10 rows in set (0.00 sec)

 

最后修改日期: 2019年9月19日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。