You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询:当Category和CatCode各存在指定值时获取Country

解决MySQL查询需求:返回同时存在指定Category和CatCode的country

嘿,针对你的需求,我整理了两种实用的MySQL查询方案,你可以根据实际场景选择:

方案一:使用EXISTS子查询(推荐,性能更优)

这种方式通过两个子查询分别验证每个country是否存在Category=4和CatCode=101的记录,逻辑清晰且在有合适索引的情况下性能很好:

SELECT DISTINCT t.country
FROM your_table t
WHERE EXISTS (
    SELECT 1 
    FROM your_table 
    WHERE country = t.country AND Category = 4
)
AND EXISTS (
    SELECT 1 
    FROM your_table 
    WHERE country = t.country AND CatCode = 101
);

说明:

  • 把your_table替换成你实际的数据表名称
  • DISTINCT用来确保同一个country只返回一次,避免重复结果
  • 子查询里的SELECT 1是高效的写法,数据库不需要返回实际数据,只要确认存在记录即可

方案二:使用GROUP BY + HAVING筛选

如果你偏好分组统计的方式,也可以用这个写法:

SELECT country
FROM your_table
WHERE Category = 4 OR CatCode = 101
GROUP BY country
HAVING COUNT(DISTINCT CASE WHEN Category = 4 THEN 1 END) > 0
AND COUNT(DISTINCT CASE WHEN CatCode = 101 THEN 1 END) > 0;

说明:

  • 先筛选出所有符合Category=4或CatCode=101的记录,减少后续分组的数据量
  • 通过CASE表达式分别标记两类记录,再用COUNT统计每个country是否同时包含这两类记录
  • 同样记得替换your_table为实际表名

这两种方案都能实现你的需求,返回同时存在Category=4和CatCode=101记录的country(比如示例中的US)。

内容的提问来源于stack exchange,提问作者iamPacMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:03:18