2012-03-13 47 views
0

以下查詢應返回180行(因爲它是2012-03-13 00:002012-03-13 03:00之間的總分鐘數),但始終返回171行。我發現當我在SELECT查詢中使用interval時,我總是可以獲得最多171行。下面是該查詢:使用間隔時,MySQL查詢總是返回171行

SET @num = -1; 
SELECT @num:[email protected]+1 AS AddInterval, DATE_ADD('2012-03-13 00:00', interval @num minute) AS MyDate FROM MyTable HAVING MyDate <= '2012-03-13 03:00' LIMIT 0, 180 

此外,下面的非常簡單的查詢將返回171行太:

SELECT COUNT(DATE_ADD('2012-03-13 00:00', interval 1 minute)) FROM MyTable; 

是否有任何MySQL的配置會影響這一點,限制還是我做錯了什麼?

謝謝。

回答

1

您正在從表中選擇 - 如果該表只有171行,那麼您只會得到171個增量。即使您指定的限制高於可用限制,SQL也不會爲您創建缺少的行。

即使您沒有真正從該表中選擇任何實際字段,也是如此。您只選擇生成的值 - 但您仍然限於基礎表中的行數。

+0

唉!我怎麼能這麼想!謝謝馬克。 – matte 2012-03-13 18:51:31