文章優先發表在個人博客,本篇文章地址:https://www.xdx97.com/article/730173966978646016
思路:先隨機排序然後再分組就好了。
1、創建表:
CREATE TABLE `xdx_test` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`class` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2、插入數據
INSERT INTO xdx_test VALUES (1, '張三-1','1');
INSERT INTO xdx_test VALUES (2, '李四-1','1');
INSERT INTO xdx_test VALUES (3, '王五-1','1');
INSERT INTO xdx_test VALUES (4, '張三-2','2');
INSERT INTO xdx_test VALUES (5, '李四-2','2');
INSERT INTO xdx_test VALUES (6, '王五-2','2');
INSERT INTO xdx_test VALUES (7, '張三-3','3');
INSERT INTO xdx_test VALUES (8, '李四-3','3');
INSERT INTO xdx_test VALUES (9, '王五-3','3');
3、查詢語句
SELECT * FROM
(SELECT * FROM xdx_test ORDER BY RAND()) a
GROUP BY a.class
4、查詢結果
3 王五-1 1
5 李四-2 2
9 王五-3 3
3 王五-1 1
4 張三-2 2
7 張三-3 3
2 李四-1 1
5 李四-2 2
8 李四-3 3