这是我正在运行的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之间类别1或类别3的所有条目,其中运行随机数小于90,结果限制为10。
问题是它忽略了日期和运行参数,如果您分别运行所有内容,它们将起作用,但是像上面一样,它们一起只能从类别1和类别3中返回10个带有任何日期/运行的随机条目。
知道为什么吗?
谢谢。
最佳答案
在这种情况下,可能需要在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