看板 Database 關於我們 聯絡資訊
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
LaPass:order by rand會讓資料庫負荷很大說..... 12/09 17:41
cloudsan:是沒錯...但這個需求有建議的更佳解嗎@@? 12/09 21:39
TeemingVoid:可參考以下兩份文件改進亂數排序效能: 12/09 23:38
TeemingVoid:http://ppt.cc/sSSy 12/09 23:38
TeemingVoid:http://ppt.cc/ezww 12/09 23:38
cloudsan:謝指教! 12/10 00:50
rghxh:謝指教!!! 12/13 10:14