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

无需多个SELECT语句查询匹配全部勾选交通类型的区域ID的方法

实现方案

使用GROUP BY + HAVING的固定语法即可,不需要随勾选的交通类型数量调整语句结构,仅需修改两处参数:

SELECT b_codigo
FROM transporte
-- 替换IN列表为实际勾选的所有交通类型
WHERE tipo_transporte IN ('Bus', 'Railway (FGC)')
GROUP BY b_codigo
-- 等号右侧的数字等于你勾选的交通类型总数量
HAVING COUNT(DISTINCT tipo_transporte) = 2;

用法示例

  • 当仅勾选Railway (FGC)时,修改WHERE条件为tipo_transporte IN ('Railway (FGC)'),同时将HAVING子句改为COUNT(DISTINCT tipo_transporte) = 1,即可返回7、8、11的正确结果。
  • 当勾选3种及以上交通类型时,仅需要在IN列表中添加对应类型,同时把HAVING后的数字改为勾选总数即可,语句结构完全不变。

性能优化建议

  • 给transporte表创建(tipo_transporte, b_codigo)联合索引,该查询可以直接走索引覆盖,无需回表,性能远优于多条件拼接或INTERSECT拼接的写法。
  • 如果表中不存在同一个b_codigo对应重复tipo_transporte的记录,可以把COUNT(DISTINCT tipo_transporte)简化为COUNT(*),进一步提升查询效率。

内容的提问来源于stack exchange,提问作者Juan Andres Flores Gutierrez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:15:01