0

这是我正在运行的 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

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

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

知道为什么吗?

谢谢。

4

2 回答 2

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
于 2013-06-09T14:04:32.093 回答
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
于 2013-06-09T14:04:39.020 回答