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

如何遍历指定编码列表统计MySQL表中各编码的有效出现次数

无需循环的高效解决方案

你完全不用写循环,一条SQL就能搞定所有编码的统计,效率比循环高得多:

SELECT
    Items.Itmcode, 
    COUNT(*) AS `Total Items Sold`
FROM
    Items
WHERE
    Items.Itmcode IN ('abc123', 'bdg432', 'eds321', 'hgd765', 'fds987', 'tdq343')
    AND Items.ItmStatus > 2
GROUP BY
    Items.Itmcode

代码说明:

  • 用IN替代逐个等于判断,一次性指定所有要查询的编码
  • GROUP BY Items.Itmcode会自动按编码分组,统计每组符合条件的记录数
  • 结果会直接返回每个编码对应的销售总数,不用逐个执行查询

补充:如果需要显示列表中所有编码(包括没有符合条件记录的编码,计数为0)

如果有些编码没有满足ItmStatus > 2的记录,上面的SQL不会返回这些编码。要是想让所有列表里的编码都显示,哪怕计数是0,可以用子查询生成编码列表再左连接:

WITH ItemCodes AS (
    SELECT 'abc123' AS Itmcode UNION ALL
    SELECT 'bdg432' UNION ALL
    SELECT 'eds321' UNION ALL
    SELECT 'hgd765' UNION ALL
    SELECT 'fds987' UNION ALL
    SELECT 'tdq343'
)
SELECT
    ic.Itmcode,
    COUNT(i.Itmcode) AS `Total Items Sold`
FROM
    ItemCodes ic
LEFT JOIN
    Items i ON ic.Itmcode = i.Itmcode AND i.ItmStatus > 2
GROUP BY
    ic.Itmcode

这个写法会确保列表里的每个编码都出现在结果中,没有符合条件的记录时计数为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:51:37