在mysql中如何随机查询一定数量的数据

zyu520 2007-10-31 05:47:28
我在mysql中想随机查询出一些数据来构成一个数据集,不知该怎么样写这一条select语句,
如:
我从试题题库中随机取出10条关系数学的题目,取出20条语文相关的题目组合成一个数据集,
题目都在同一个数据表中.
...全文
515 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyu520 2007-10-31
  • 打赏
  • 举报
回复
多谢:
改正一下:
set names gbk;
(select distinct * from score where subject ='数学' order by rand() limit 10)
union all
(select distinct * from score where subject ='语文' order by rand() limit 20);
这样就不会报:"不正确的使用 union and order by"这个错误了
懒得去死 2007-10-31
  • 打赏
  • 举报
回复
取不重复的数据的话加DISTINCT就可以了。

set names gbk;
select distinct * from score where subject = '数学' order by rand() limit 10
union all
select distinct * from score where subject = '语文' order by rand() limit 20;

zyu520 2007-10-31
  • 打赏
  • 举报
回复
多谢,但是这样的话不是会有时取出重复的数据吗?
懒得去死 2007-10-31
  • 打赏
  • 举报
回复
假设你的表是SCORE,学科字段是subject
语句:

set names gbk;
select * from score where subject = '数学' order by rand() limit 10
union all
select * from score where subject = '语文' order by rand() limit 20;

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧