如何选择几列中的一列等于某个值的行?

时间:2009-08-21 20:46:13

标签: sql mysql

假设我有一个包含A列,B列和C列的表。如何编写I查询,选择列A或列B或列C等于某个值的所有行?感谢。

更新:我想忘了提一下我的困惑。假设有另一列(第1列),我需要根据以下逻辑进行选择:

...其中Column1 ='..'AND(ColumnA ='..'或ColumnB ='..'或ColumnC ='..')

如上所述,使用括号将语句分组以获得所需的逻辑是否有效?

4 个答案:

答案 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)

是的,使用括号是有效的。但是,如果您在多个列中搜索相同的值,则可能需要考虑规范化数据库。