我一直在Google和SO搜索最後25分鐘搜索如何在MySQL中執行以下操作。在日期範圍內計算每個日期的行數
目前,我有以下查詢(通過PHP發送):
SELECT
COUNT(*),
`$db`.`crop`.`id` AS `crop`,
`$db`.`crop`.`harvest_date` AS `harvest_date`
FROM
`$db`.`crop`
WHERE
`$db`.`crop`.`harvest_date` BETWEEN $startDate AND $endDate
GROUP BY `$db`.`crop`.`harvest_date`
$startDate = 2012-01-01
$endDate = 2013-07-01
我試圖找到所有已開始和結束日期之間的harvest_date行,再算上那年秋天的行數在同一天。但是,我似乎沒有得到任何結果。查詢不會失敗,它只是不會返回任何內容。任何人都可以指出我正確的方向/告訴我我錯了嗎?
編輯:發現問題。正如Michael在下面指出的那樣,日期並沒有像日期那樣通過,而是數字。我通過在查詢中的startDate和endDate之前和之後添加了解決方案。
應該爲查詢失敗。你的日期文字需要用單引號字符串。如''startDate ='2012-01-01'' –
當您通過'harvest_date'進行分組時,您必須使用某種聚集函數(例如'min()','max()'或'group_concat )''爲'id'。 – cars10m
哪種類型是'harvest_date'? –