2012-03-13 8 views
0

次のクエリは180行(2012-03-13 00:00から2012-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

Argh!どのように私はそれを考えることができなかった!ありがとうMarc。 – matte

関連する問題