Mysql where子句中不同语句的组合

Mysql where子句中不同语句的组合,mysql,where-clause,Mysql,Where Clause,我有一些where子句,比如: $sWhere = " WHERE MONTH(Inspection_datetime) = '".$Month."' AND YEAR(Inspection_datetime) = '".$Year."' "; 还有一个命令: WHERE DAY(Inspection_datetime) BETWEEN 8 AND 14 GROUP BY Line, WEEK(Inspection_datetime), YEAR(Inspection

我有一些where子句,比如:

$sWhere = " WHERE MONTH(Inspection_datetime) = '".$Month."' AND 
            YEAR(Inspection_datetime) = '".$Year."' ";
还有一个命令:

WHERE DAY(Inspection_datetime) BETWEEN 8 AND 14
GROUP BY Line, WEEK(Inspection_datetime), YEAR(Inspection_datetime)

如何将两个命令合并为一个?因为我想在第二周显示数据,并在选定的月份和年份对它们进行排序。

只需在您的语句中添加另一个and子句即可

“月(InPartition_datetime)='”、“$MONTH.”和年(Inspection_datetime)='”、“$YEAR.”,其中日期(Inspection_datetime)介于8和14之间,按行、周(Inspection_datetime)、年(Inspection_datetime)”分组

其中(cond1、cond2和cond3) 排序依据(列至排序依据)[desc]

我认为要对查询结果进行排序,必须使用“排序依据…”


关于,-M.S.

在日期列上执行函数不是一个好主意。除非桌子很小,或者你真的不在乎性能,那就不是了。最好做相反的操作——构造要测试的日期和/范围

YEAR(datecolumn)=X和MONTH(datecolumn)=Y

第二周,您是指问题中所示的第8-14天,还是希望计算出第一个完整/部分周后的第二个周一至周日周?@cyberwiki:8-14表示我希望在第二周计算或显示数据。是否保存?我能不能在8点到14点之间选择“WHERE……=月和年和日”?
YEAR(datecolumn) = X and MONTH(datecolumn) = Y
<< index cannot be used, MONTH() has to be run on all rows
$sWhere = " WHERE Inspection_datetime >= '".$Year.'-'.$Month."-1'
              AND Inspection_datetime <  '".$Year.'-'.$Month."-1'
                       + interval 1 month - interval 1 day"
$sWhere = " WHERE Inspection_datetime >= '".$Year.'-'.$Month."1'
              AND Inspection_datetime <  '".$Year.'-'.$Month."1'
                       + interval 1 month - interval 1 day
              AND DAY(Inspection_datetime) BETWEEN 8 AND 14"