MYSQL如何随机读取多个分类中的某一条数据??

wyfytangsh 2012-08-28 03:50:59
MYSQL如何随机读取多个分类中的某一条数据??
例如:
数据表
id name val memo
1 a 2 a2
2 a 1 a1
3 a 3 a3
4 b 1 b1
5 b 3 b3
6 b 2 b2
7 c 1 c1
8 c 2 c2


我想要查找的是 从a,b,c 类中各找出一条数据,但是从a中取出的一条数据是随机的,b,c中取出的数据也是随机的一条,要如何做呢?
这是创建表的SQL代码

CREATE TABLE IF NOT EXISTS `tb` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(10) default NULL,
`val` int(11) default NULL,
`memo` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- 转存表中的数据 `tb`
--

INSERT INTO `tb` (`name`, `id`, `val`, `memo`) VALUES
('a', 1, 2, 'a2'),
('a', 2, 1, 'a1'),
('a', 3, 3, 'a3'),
('b', 4, 1, 'b1'),
('b', 5, 3, 'b3'),
('b', 6, 2, 'b2'),
('c', 7, 1, 'c1'),


我使用了 distinct ,但是却不能完全实现,因为distinct就却除重复值,只是将同为a类的三个值取第一个而已 我需要的是同为a类的值取值可以随机的
使用命令:
Select id,distinct(name),val,memo from tb group by name order by rand() limit 0,30
得到的结果是:

name id val memo
a 1 2 a2
c 7 1 c1
b 4 1 b1

没有达到我的目标
有没有大神可以指教一下呢?

...全文
241 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-08-28
  • 打赏
  • 举报
回复
参考下贴中的多种方法

http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分....
wyfytangsh 2012-08-28
  • 打赏
  • 举报
回复
谢谢你啊
rucypli 2012-08-28
  • 打赏
  • 举报
回复
mysql> Select id, name ,val,memo from (select * from tb order by rand())t group by name limit 0,30 ;
+----+------+------+------+
| id | name | val | memo |
+----+------+------+------+
| 1 | a | 2 | a2 |
| 6 | b | 2 | b2 |
| 7 | c | 1 | c1 |
+----+------+------+------+
3 rows in set (0.00 sec)

mysql> Select id, name ,val,memo from (select * from tb order by rand())t group by name limit 0,30 ;
+----+------+------+------+
| id | name | val | memo |
+----+------+------+------+
| 2 | a | 1 | a1 |
| 4 | b | 1 | b1 |
| 7 | c | 1 | c1 |
+----+------+------+------+
3 rows in set (0.01 sec)

mysql> Select id, name ,val,memo from (select * from tb order by rand())t group by name limit 0,30 ;
+----+------+------+------+
| id | name | val | memo |
+----+------+------+------+
| 3 | a | 3 | a3 |
| 6 | b | 2 | b2 |
| 7 | c | 1 | c1 |
+----+------+------+------+
wyfytangsh 2012-08-28
  • 打赏
  • 举报
回复
有没有人可以帮忙呢?HELP

56,678

社区成员

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

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