WHERE OR子句无法正常工作

时间:2012-10-31 02:39:24

标签: php mysql sql codeigniter

我正在尝试选择具有某些id的类别,并且sql查询表现得非常奇怪,请看一下:

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

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

see here http://f.cl.ly/items/3S3T361e3A2t27200a1k/Screen%20Shot%202012-10-30%20at%207.28.23%20PM.png

我需要这个工作,脚本执行此操作:用户指定一个国家/地区,脚本获取具有该国家/地区ID的所有类别,然后脚本必须选择具有这些类别ID的所有Feed。最后一部分是抓住上一部分所有饲料ID的帖子。这就像一个新闻网站,提要是导入的RSS源。嗨帮助将不胜感激!顺便说一下,我正在使用codeigniter。

2 个答案:

答案 0 :(得分:9)

试试这个:

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)

答案 1 :(得分:0)

试试这个

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