1

我需要选择单列匹配多个值的所有值。在某一时刻,我看到了类似以下的内容,但它对我不起作用。这是正确的还是我需要将这些值与 AND 链接?

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

我也在 php 脚本中执行此操作,并在 http 帖子中获取我的值,所以如果有人能指出我的方向,那就太好了。谢谢!

4

2 回答 2

10

你需要使用IN

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

它与

SELECT * 
FROM MYTABLE 
WHERE AGE =  20 OR
      AGE =  21 OR
      AGE =  22 
于 2012-10-12T04:12:17.413 回答
2

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

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

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

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

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

这将引发错误。

于 2012-10-12T04:26:45.867 回答