【发布时间】:2012-10-02 20:37:15
【问题描述】:
我需要选择单列匹配多个值的所有值。在某一时刻,我看到了类似以下的内容,但它对我不起作用。这是正确的还是我需要用 AND 链接这些值?
SELECT * FROM MYTABLE WHERE AGE = ( 20, 21, 22 )
我也在 php 脚本中执行此操作,并在 http 帖子中获取我的值,所以如果有人能指出我的方向,那就太好了。谢谢!
【问题讨论】:
我需要选择单列匹配多个值的所有值。在某一时刻,我看到了类似以下的内容,但它对我不起作用。这是正确的还是我需要用 AND 链接这些值?
SELECT * FROM MYTABLE WHERE AGE = ( 20, 21, 22 )
我也在 php 脚本中执行此操作,并在 http 帖子中获取我的值,所以如果有人能指出我的方向,那就太好了。谢谢!
【问题讨论】:
你需要使用IN
SELECT *
FROM MYTABLE
WHERE AGE IN ( 20, 21, 22 )
和它是一样的
SELECT *
FROM MYTABLE
WHERE AGE = 20 OR
AGE = 21 OR
AGE = 22
【讨论】:
你需要使用IN,但要小心:
如果字段或值不是某种数字格式,则必须引用每个值:
SELECT * FROM TABLE WHERE FIELD IN ('a','b','c')
此外,如果您使用数字字段,请确保每个值都不为空。这将失败:
SELECT * FROM TABLE WHERE FIELD IN (1,,3,4,5)
这将引发错误。
【讨论】: