Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免MySQL联合查询中的代码重复_Mysql - Fatal编程技术网

如何避免MySQL联合查询中的代码重复

如何避免MySQL联合查询中的代码重复,mysql,Mysql,我试图避免MySQL联合查询中的代码重复,并想知道是否有一种方法可以参数化这样的查询。基本上,我的查询是这样的(B有一个if条件,它取决于日期,但为了简洁起见,我跳过它) B和xyz是相当长的语句,唯一改变的是每个语句中的日期(日期影响B,但不影响条件xyz)。有没有更好的方法来消除代码重复?您考虑过准备好的语句吗?不幸的是,您已经混淆了查询,以至于很难推测为什么要使用UNION。 select month(A), sum(B) from T where xyz union select mon

我试图避免MySQL联合查询中的代码重复,并想知道是否有一种方法可以参数化这样的查询。基本上,我的查询是这样的(B有一个if条件,它取决于日期,但为了简洁起见,我跳过它)


B和xyz是相当长的语句,唯一改变的是每个语句中的日期(日期影响B,但不影响条件xyz)。有没有更好的方法来消除代码重复?

您考虑过准备好的语句吗?不幸的是,您已经混淆了查询,以至于很难推测为什么要使用
UNION
select month(A), sum(B) from T where xyz
union
select month(date_diff(A, interval 1 month)), sum(B) from T where xyz
union
select month(date_diff(A, interval 2 month)), sum(B) from T where xyz
.......