PHP - MYSQL不在set参数中返回结果

时间:2013-06-09 14:01:26

标签: php mysql

这是我正在运行的sql代码:

SELECT * FROM documents WHERE cat=1 OR cat=3 AND date>=2001 AND date<=2003 AND run <90 ORDER BY RAND() LIMIT 0,10

它应该在日期2001-2003之间返回cat 1或cat 3中的所有条目,其中run随机方式小于90,且结果限制为10。

问题是它忽略了日期和运行参数,如果你运行所有单独的它们就可以工作,但是像上面一样它只返回来自cat 1和3的10个随机条目以及任何日期/运行..

知道为什么吗?

感谢。

2 个答案:

答案 0 :(得分:3)

可能需要在OR语句周围使用括号,如此;

SELECT * FROM documents WHERE (cat=1 OR cat=3) AND date>=2001 AND date<=2003 AND run <90 ORDER BY RAND() LIMIT 0,10

答案 1 :(得分:2)

  SELECT *
    FROM documents
   WHERE (cat=1 OR cat=3)
     AND date>=2001 
     AND date<=2003
     AND run <90 
ORDER BY RAND()
   LIMIT 0,10