MYSQL子查询计数

时间:2017-04-28 23:39:09

标签: mysql sql

我有一个q MySQL查询,查找部件号并返回计数;我需要弄清楚如何通过部件号计数来输出查询

现在我的查询

 select count(partnumber)
 from db1
 where part number REGEXP '6270|6269|6266'

输出部件号30

我想要的是输出看起来像这样,

part numbers count 
6270      | 20
6269       | 10
6266      | 5

1 个答案:

答案 0 :(得分:1)

如果我理解正确,这是编写查询的更好方法:

 select partnumber, count(*)
 from db1 where partnumber in (6270, 6269, 6266)
 group by partnumber;

in表达式与正则表达式不完全相同(等效正则表达式为'^6270|6269|6266$')。如果你真的想要部分匹配,那么你应该使用正则表达式。

对于完全匹配,in更好,因为(1)它是标准SQL; (2)比较中的类型是正确的; (3)它更好地优化。