这是我正在运行的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个随机条目以及任何日期/运行..
知道为什么吗?
感谢。
答案 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