选择所有行,除非此条件为真

时间:2014-03-17 16:14:30

标签: php mysql sql

我无法直接思考这一点。

我正在尝试为以下内容撰写SQL查询:

shared_id | user_id | processed
1181      | 1       | 1
1181      | 1       | 1
1181      | 1       | 0
1181      | 2       | 1
1181      | 2       | 0
1182      | 2       | 0

我想选择所有行:

  • shared_id = 1181
  • user_id!= 1 if processed = 0

因此,上面将返回4的计数,因为在第三行中,user_id为1并且处理为0.如果processed = 1,则应包括此行。

我有:

SELECT COUNT(*) as count 
FROM $table_name 
WHERE shared_id = '{$shared_id}'
AND (user_id != '1' AND processed = '0')

但是,这并不像我预期的那样有效。有线索吗?

感谢。

1 个答案:

答案 0 :(得分:2)

请改为尝试:

SELECT COUNT(*) as count 
FROM $table_name 
WHERE shared_id = '{$shared_id}'
AND (processed != '0' OR user_id != '1')