我有一个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)它优化得更好。