查询单列的多个WHERE

时间:2012-10-12 04:11:49

标签: php sql select

我需要选择单个列匹配多个值的所有值。有一次,我看到了类似下面的东西,但它对我不起作用。这是正确的还是我需要将这些值与AND链接?

SELECT * FROM MYTABLE WHERE AGE = ( 20, 21, 22 )

我也是在PHP脚本中执行此操作并在http帖子中获取我的值,以便任何人都能指出我的方向,这将是一个很好的例子。谢谢!

2 个答案:

答案 0 :(得分:10)

您需要使用IN

SELECT * 
FROM MYTABLE 
WHERE AGE IN ( 20, 21, 22 )

相同
SELECT * 
FROM MYTABLE 
WHERE AGE =  20 OR
      AGE =  21 OR
      AGE =  22 

答案 1 :(得分:2)

您需要使用IN,但要小心:

如果字段或值不是某种数字格式,则必须引用每个值:

SELECT * FROM TABLE WHERE FIELD IN ('a','b','c')

此外,如果您使用的是数字字段,请确保每个值都不为空。这将失败:

SELECT * FROM TABLE WHERE FIELD IN (1,,3,4,5)

这会引发错误。