2011-01-20 62 views
0

我有不同的說法有些where子句,如:結合在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) 

我怎麼做才能既包括命令成爲一個?因爲我想在第二週顯示數據並在選定的月份和年份對它們進行排序。

+0

到第二週爲止,你的意思是你的問題中顯示的8-14天,還是你想在第二週後第一個完整/部分周? – RichardTheKiwi 2011-01-20 02:54:58

+0

@cyberwiki:8-14表示我想在第二週計數或顯示數據。 – klox 2011-01-20 03:00:21

回答

0

只需在您的語句中添加另一個AND子句。

" MONTH(Inpsection_datetime) = '".$Month."' AND YEAR(Inspection_datetime) = '".$Year."' AND WHERE DAY(Inspection_datetime) BETWEEN 8 AND 14 GROUP BY Line, WEEK(Inspection_datetime), YEAR(Inspection_datetime)";

0

WHERE(COND1和COND2和COND3) ORDER BY(column_to_sort_on)[DESC]

我想查詢結果,你必須使用 「ORDER BY ......」

排序

此致 - MS

0

這是不是在日期列上執行功能的好主意。除非桌子很小或者你不關心表演,那就是。做相反的事情總是會更好 - 建立日期& /範圍來測試。

YEAR(datecolumn) = X and MONTH(datecolumn) = Y 
<< index cannot be used, MONTH() has to be run on all rows 

條件變爲(它看起來通過作品更好地在MySQL的複雜)

$sWhere = " WHERE Inspection_datetime >= '".$Year.'-'.$Month."-1' 
       AND Inspection_datetime < '".$Year.'-'.$Month."-1' 
         + interval 1 month - interval 1 day" 

將它添加到其他的條件,整個WHERE子句將

$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"