在WHERE子句中混合AND和OR会产生意外结果

时间:2014-09-18 14:04:09

标签: sql postgresql

WHERE operation = 'cmn'
  AND client = '' OR client IS NULL
  AND ts >= '2014-03-01'
  AND ts <'2014-09-01'

我正在尝试此where条件,但是OR未按预期工作。

我的想法是保持cmn强制性,但客户端可能为空或无效。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

or括在括号中:

WHERE operation = 'cmn'
AND (client = '' OR client IS NULL)
AND ts >= '2014-03-01'
AND ts < '2014-09-01'