文章优先发表在个人博客,本篇文章地址: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