Re: [SQL ] 群組中亂數取一筆資料

看板Database作者 (趴千)時間11年前 (2012/12/07 19:37), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串2/2 (看更多)
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

12/09 17:41, , 1F
order by rand會讓資料庫負荷很大說.....
12/09 17:41, 1F

12/09 21:39, , 2F
是沒錯...但這個需求有建議的更佳解嗎@@?
12/09 21:39, 2F

12/09 23:38, , 3F
可參考以下兩份文件改進亂數排序效能:
12/09 23:38, 3F

12/09 23:38, , 4F
12/09 23:38, 4F

12/09 23:38, , 5F
12/09 23:38, 5F

12/10 00:50, , 6F
謝指教!
12/10 00:50, 6F

12/13 10:14, , 7F
謝指教!!!
12/13 10:14, 7F
文章代碼(AID): #1GmTK9MO (Database)
文章代碼(AID): #1GmTK9MO (Database)