mysql统计在多个集合中匹配与集合('2', '4', '8','16','32','64','128','256','512','8192','1024', '2048','4096','16384','32768','65536', '131072','262144','524288','1048576','2097152','4194304', '33','34','31')中存在两个或两个以上数字的集合的个数(不用正则表达式)
时间: 2023-07-31 13:11:22 浏览: 217
初步介绍MySQL中的集合操作
可以使用MySQL中的多个内置函数来实现此统计,如下所示:
```mysql
SELECT COUNT(*) AS count
FROM (
SELECT SET_COUNT(GROUP_CONCAT(DISTINCT col SEPARATOR ',')) AS set_count
FROM (
SELECT col
FROM table_name
WHERE col IN ('2', '4', '8','16','32','64','128','256','512','8192','1024', '2048','4096','16384','32768','65536', '131072','262144','524288','1048576','2097152','4194304', '33','34','31')
GROUP BY id
HAVING COUNT(*) >= 2
) AS t1
) AS t2
WHERE set_count >= 2;
```
其中,使用GROUP_CONCAT函数将每个集合中的数字连接起来,并使用DISTINCT关键字防止重复。然后,使用SET_COUNT函数计算有多少个不同的数字,如果数字数量大于等于2,则说明该集合中存在两个或两个以上的数字。
最后,在外部查询中,过滤出SET_COUNT大于等于2的记录,并使用COUNT函数计算它们的数量。
阅读全文