mysql按照entrance分组每组取随机的10条
时间: 2023-07-05 22:33:34 浏览: 99
MySql分组后随机获取每组一条数据的操作
5星 · 资源好评率100%
你可以使用子查询和 MySQL 的 RAND() 函数来实现按照 `entrance` 分组每组取随机的10条的需求。具体可以参考以下 SQL 语句:
```
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY entrance ORDER BY RAND()) AS row_num
FROM your_table
) subquery
WHERE row_num <= 10
```
其中,`entrance` 是你要分组的列名。这条 SQL 语句会先对原始数据按照 `entrance` 进行分组,然后使用 `RAND()` 函数生成一个随机数作为排序依据。接着,使用 ROW_NUMBER() 函数给每行数据编号,编号从1开始,每个分组内的数据编号都是独立的。最后,对这个子查询结果进行筛选,只保留每个分组内的前10行数据。
需要注意的是,由于 `RAND()` 函数的存在,每次运行这个 SQL 语句取到的数据都是随机的。如果你希望每次取到的数据都一样,可以将子查询中的 `RAND()` 函数替换为一个固定的值,比如当前的日期时间。
阅读全文