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

10-08 00:31