我有一个 q MySQL 查询,用于查找零件号并返回计数;我需要弄清楚如何让查询按零件号计数输出
现在这是我的查询
select count(partnumber)
from db1
where part number REGEXP '6270|6269|6266'
输出部件号 30
我想要的是这样的输出,
part numbers count
6270 | 20
6269 | 10
6266 | 5
最佳答案
如果我理解正确,这是编写查询的更好方法:
select partnumber, count(*)
from db1 where partnumber in (6270, 6269, 6266)
group by partnumber;
此 in
表达式与您的正则表达式不完全相同(等效的正则表达式为 '^6270|6269|6266$'
)。如果你真的想要部分匹配,那么你应该使用正则表达式。
对于精确匹配,in
更好,因为 (1) 它是标准 SQL; (2) 类型比较正确; (3) 它优化得更好。
关于MYSQL 子查询计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690256/