我有一个包含以下列的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。
我怎么能这样做?
答案 0 :(得分:0)
听起来你想在ip
子句中计算匹配所有的where
。好吧,你不能用where
子句做到这一点。
您可以使用条件聚合执行所需操作:
SELECT ip,
SUM(action IN ('edit', 'delete'))
FROM table
GROUP BY ip;