【问题标题】:Query with multiple WHERE for single column使用多个 WHERE 查询单列
【发布时间】:2012-10-02 20:37:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: php sql select


    【解决方案1】:

    你需要使用IN

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

    和它是一样的

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

    【讨论】:

    • 感谢您的快速回复。这是否也仅适用于 1 个值。例如:年龄在哪里(20)?
    • @jgelderloos 绝对是的:D
    【解决方案2】:

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

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

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

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

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

    这将引发错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2019-10-25
      • 2014-10-15
      • 2021-08-02
      • 2022-11-13
      • 2018-06-26
      相关资源
      最近更新 更多