在不工作的mysql之间使用或条件

在不工作的mysql之间使用或条件,mysql,Mysql,我有一个SQL代码,它的条件介于和或之间 选择*FROM tbl\u order o internal JOIN tbl\u contacts c ON c.contacts\u id=o.contacts\u id LEFT JOIN tbl\u title t ON t.title\u id=c.title\u id LEFT JOIN tbl\u分配a.order\u id=o.order\u id=o.order\u no\u first=o.order\u first,其中o.orde

我有一个SQL代码,它的条件介于和或之间

选择*FROM tbl\u order o internal JOIN tbl\u contacts c ON c.contacts\u id=o.contacts\u id LEFT JOIN tbl\u title t ON t.title\u id=c.title\u id LEFT JOIN tbl\u分配a.order\u id=o.order\u id=o.order\u no\u first=o.order\u first,其中o.order\u status=1和o.order\u日期之间的日期,间隔-2天和CURDATE或o.order\u print=1组,按o.order\u id

上面的代码抛出一个错误

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行使用near'或o.order\U print=1 GROUP BY o.order\U id LIMIT 0,25'的正确语法

如果我使用AND而不是OR,则代码可以完美地工作。但我需要或代替和


如何解决此错误。我哪里做错了?

你把括号弄错了:

o.order_date BETWEEN DATE(DATE_ADD(o.order_date, INTERVAL -2 DAY) AND CURDATE())
应该是:

o.order_date BETWEEN DATE(DATE_ADD(o.order_date, INTERVAL -2 DAY)) AND CURDATE()
BETWEEN需要两个参数,并且不能在两个参数周围加括号

像这样:

o.order_date BETWEEN X AND Y  
o.order_date BETWEEN (X AND Y)  
不是这样的: