我有点问题。我想执行该查询:
WHERE (column1 = 'tetxt1' and column2 = 'tetxt2' and column3 = 'tetxt3 )
OR (column2 = 'tetxt2' and column3 = 'tetxt3' )
OR (column1 = 'tetxt1' and column3 = 'tetxt3' )
OR (column1 = 'tetxt1' and column2 = 'tetxt2' )
OR ( column3 = 'tetxt3' )
OR ( column1 = 'tetxt1 )
OR ( column2 = 'tetxt2 )
换句话说,where子句列之一可以为空,但我需要使用和查询具有值的列。所以,如果我只有column1和column2的值而不是column3的值,那么将使用和条件查询这两个值。我认为这不会起作用:
Where (column1 = 'tetxt1' or column2 = 'tetxt2' or column3 = 'tetxt3')
我给出的第一种方法并不是最好的方法。你有什么想法如何改善查询? 非常感谢你!
答案 0 :(得分:0)
你不会得到同样的效果:
WHERE
column1 IN('tetxt1','tetxt2','tetxt3')
or column2 IN('tetxt1','tetxt2','tetxt3')
or column3 IN('tetxt1','tetxt2','tetxt3')
答案 1 :(得分:0)
假设"空"表示NULL
您可以使用COASLESCE关键字。
WHERE (COALESCE(column1, 'text1') = 'tetxt1' and COALESCE(column2, 'text2') = 'tetxt2' and COALESCE(column3, 'text3') = 'tetxt3 )