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

09-30 16:45
查看更多