MYSQL 子查询计数

标签 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

最佳答案

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

 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/

相关文章:

mysql - 需要 SQL select 语句进行分页

mysql - SQL Join - 4 个表或使用一个 View

php - 如何根据第一个表匹配获取第二个和第三个表的数据

mysql - SQL交叉表查询查看一些交易的总和

mysql - 根据列的总和计算加类时间

mysql - DELETE 语句中 INNER 和 LEFT join 有什么区别?

调用设置日期过程的 MySQL 触发器

mysql - 创建表时的 SQL 整数范围

mysql - 在同一个表的列中组织相似的项目

java - 准备语句错误