mysql按分组随机取每组的10条数据_MySql分组后如何随机获取每组一条数据

MySql分组后如何随机获取每组一条数据

发布时间:2020-10-26 15:10:32

来源:亿速云

阅读:62

作者:Leah

MySql分组后如何随机获取每组一条数据?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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 33 王五-1 1

4 张三-2 2

7 张三-3 32 李四-1 1

5 李四-2 2

8 李四-3 3

补充知识:mysql实现随机获取几条数据的方法(效率和离散型比较)

sql语句有几种写法、效率、以及离散型 比较

1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数;

2:SELECT *FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 想要获取的数据条数;

3:SELECT * FROM `table` AS t1 JOIN (S

你可能感兴趣的:(mysql按分组随机取每组的10条数据_MySql分组后如何随机获取每组一条数据)