具有多个AND和OR条件的复杂SQL where子句

时间:2016-08-02 13:09:08

标签: mysql oracle where-clause

我正在尝试这样的事情

Where (((t1.column1=value1 and t1.column2=value1) OR 
        (t1.column1=value2 and t1.column2=value2)) 
   AND ((t1.column1=value3 and t1.column2=value3) OR 
        (t1.column1=value4 and t1.column2=value4) OR 
       (...)))

当我执行带有'OR'条件的查询的第一部分时,执行并返回结果集。如果我包含以“AND”开头的查询的第二部分,则返回的结果集为0。

有人可以帮助我出错的地方。感谢

修改后的查询以便更好地理解

 WHERE (    (   (    dataType = 'int'     AND DATA = '1')
             OR (    dataType = 'Integer' AND DATA = '1')
            )
        AND (   (    dataType = 'String' AND DATA = '17890')
             OR (    dataType = 'String' AND DATA = '178postal')
            )
       )

1 个答案:

答案 0 :(得分:0)

那是因为你说t1.column1需要是value1或value2而t1.column1需要同时是value3或value4。

除非value1和value3可以同时相同,那么这有什么意义呢? 我认为你的逻辑中有一些错误。