MySQL Query显示包含列数据的行,即使不存在也是如此

时间:2014-11-20 16:10:30

标签: mysql

我有一个包含以下列的MySQL表

id
action
ip

操作列可以包含多个值,例如(编辑,删除,添加等)

我想执行一个MySQL查询并根据动作值获取一些数据,无论动作值是否存在,我都会提示。

例如以下查询

SELECT ip,COUNT(*) as total_actions FROM table 
WHERE action IN ('edit','delete') group by ip;

此查询根据操作列返回数据,例如,如果edit action没有条目,则不会在结果中打印。

相反,对于我在IN语句中写入的值,我希望得到他们的COUNT值对于不存在的值,计数应为0。

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

听起来你想在ip子句中计算匹配所有where。好吧,你不能用where子句做到这一点。

您可以使用条件聚合执行所需操作:

SELECT ip,
       SUM(action IN ('edit', 'delete'))
FROM table
GROUP BY ip;