作者cloudsan (趴千)
看板Database
标题Re: [SQL ] 群组中乱数取一笔资料
时间Fri Dec 7 19:37:43 2012
SELECT r.cate,
(SELECT r1.id FROM test.test r1 WHERE r.cate=r1.cate ORDER BY rand() LIMIT 1)
AS 'id' FROM test.test r
GROUP BY r.cate ;
把test.test代换成你的tabelname吧
学弟加油XD
※ 引述《rghxh (rghxh)》之铭言:
: db: mysql
: 假设我有一个table如下
: id num cate
: -----------------
: 1 5 a
: 2 2 b
: 3 3 c
: 4 10 c
: 5 12 a
: 6 7 b
: 7 7 b
: 我想要在每个cate群组中以乱数的方式各取一笔
: ex
: cate id
: a 5
: b 6
: c 3
: 请问我该怎麽下sql呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 42.73.3.208
1F:推 LaPass:order by rand会让资料库负荷很大说..... 12/09 17:41
2F:→ cloudsan:是没错...但这个需求有建议的更佳解吗@@? 12/09 21:39
3F:推 TeemingVoid:可参考以下两份文件改进乱数排序效能: 12/09 23:38
6F:→ cloudsan:谢指教! 12/10 00:50
7F:推 rghxh:谢指教!!! 12/13 10:14