假设我有一个包含A列,B列和C列的表。如何编写I查询,选择列A或列B或列C等于某个值的所有行?感谢。
更新:我想忘了提一下我的困惑。假设有另一列(第1列),我需要根据以下逻辑进行选择:
...其中Column1 ='..'AND(ColumnA ='..'或ColumnB ='..'或ColumnC ='..')
如上所述,使用括号将语句分组以获得所需的逻辑是否有效?
答案 0 :(得分:5)
除非我在这里遗漏了什么......
SELECT * FROM MYTABLE WHERE COLUMNA=MyValue OR COLUMNB=MyValue OR COLUMNC=MyValue
答案 1 :(得分:5)
我更喜欢这种方式作为整洁者
select *
from mytable
where
myvalue in (ColumnA, ColumnB, ColumnC)
答案 2 :(得分:3)
SELECT *
FROM myTable
WHERE (Column1 = MyOtherValue) AND
((ColumnA = MyValue) OR (ColumnB = MyValue) OR (ColumnC = MyValue))
答案 3 :(得分:2)
是的,使用括号是有效的。但是,如果您在多个列中搜索相同的值,则可能需要考虑规范化数据库。