【问题标题】:WHERE OR clause not functioning rightWHERE OR 子句无法正常运行
【发布时间】:2012-10-20 11:19:18
【问题描述】:

我正在尝试选择具有某些 id 的类别,而 sql 查询的行为真的很奇怪,看看:

  SELECT * FROM (`feeds`) WHERE  `cat_id` =1 OR 2 OR 3 LIMIT 0 , 30

结果中包含一个 cat_id 为 4 的项目,请看这张图:

我需要这个工作,脚本这样做:用户指定一个国家,脚本获取具有该国家 ID 的所有类别,然后脚本必须选择具有这些类别 ID 的所有提要。最后一部分是从前面的部分中获取包含所有提要 ID 的帖子。这就像一个新闻网站,提要是导入的 RSS 提要。任何帮助将不胜感激!顺便说一句,我正在为此使用 codeigniter。

【问题讨论】:

  • 将查询中的条件更改为cat_id IN (1, 2, 3) cat_id = 1 OR cat_id = 2 OR cat_id = 3
  • @air4x 哇,这是有史以来最大的菜鸟错误!我已经习惯了主动记录,谢谢!

标签: php mysql sql codeigniter


【解决方案1】:

试试这个:

SELECT * FROM `feeds`
WHERE  `cat_id` in (1 ,2 , 3)
LIMIT 0 , 30

你不能给

`cat_id` =1 OR 2 OR 3 

应该是

`cat_id` =1 OR `cat_id` =2 OR `cat_id` =3 

`cat_id` in (1,2,3)

【讨论】:

    【解决方案2】:

    试试这个

    SELECT * FROM (`feeds`) WHERE  `cat_id` =1 
    OR `cat_id` =2  OR `cat_id` =3  LIMIT 0 , 30
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      相关资源
      最近更新 更多