2012-09-26 61 views
6

私は1つのdatetime列を持つMySQLテーブルを持っています。私は、PHPスクリプトが多くのデータを取得しないようにしたい。だから私は解決策を探していますMySqlクエリは1分の距離または何かを持つ行を選択するだけです。シンプルなものがあるか、毎回新しいmysqlクエリでfor-loopをコードする必要があります。事前にMySQLクエリ:特定の間隔でデータを取得

Example 
timestamp 
2012-09-25 00:00:00--> 
2012-09-25 00:00:50 
2012-09-25 00:01:23 
2012-09-25 00:01:30--> 
2012-09-25 00:02:33 
2012-09-25 00:02:40 
2012-09-25 00:03:01-->i want those 

おかげ

+2

私は基準を理解していません、なぜそれら3を望みますか? – CrazyCasta

+0

いくつかの行を選択する必要がありますか?右? –

+0

これは単なる例です。私はちょうど00:01:00から00:02:00までのすべての値を望んでいません。私の実際のテーブルには、例えば1分間隔で10個の値があります。私はちょうど1つの値を選択したいデータの量を減らすために。多分最高です。 – simmi91

答えて

0

WHERE timestamp LIKE '%:30:00%' ...

あなたは30秒ごとに取得します。しかし、あなたのタイムスタンプが均等にすべてのエンドいけないentries..ifあなたは制服を持っている場合にのみ動作します..あなた」私たちに知らせる必要があります。

EDIT

は、私はあなたがこれを見ているかもしれないと思う:どのように動作How do you select every n-th row from mysql

+0

何らかの間隔で30のようなものがない場合はどうすればよいですか? – nawfal

+0

これは問題です:P – simmi91

+0

Ahh ...私は参照してください:/ –

1

この

SET @time := '1000-01-01 00:00:00'; 
SET @interval := 60; 

SELECT colDate 
FROM table 
WHERE TIMESTAMPDIFF(SECOND, @time, colDate) >= @interval 
    AND @time := colDate 

を試してみてください。

@intervalは、現在のcolDateと前のcolDateの間の希望の時間差です。 TIMESTAMPDIFFの最初のパラメーターは、インターバルが使用する時間の単位を決定します。例:SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、またはYEAR。

@timeは、前のcolDateを追跡し、現在の行と比較します。以前のcolDateと現在のcolDateの差が間隔以上であれば、それも含まれます。

+0

私はそれを試して、それが働いたかどうか返信します – simmi91

+0

...またはあなたは... :) –

1

これを試してみてください:

SELECT create_time 
FROM timeTable 
WHERE create_time 
IN (

SELECT min(create_time) 
FROM timeTable 
GROUP BY FROM_UNIXTIME(UNIX_TIMESTAMP(create_time) - MOD(UNIX_TIMESTAMP(create_time) , 60)); 

をどのように動作します:間隔に丸め日時によって

i)は、グループテーブル、ここでは1分(60秒)。

ii)各グループから一番上の行を取得します。

これは、データのサンプリング基準として適しています。 このクエリは、これらの点にたくさん最適化することができます。

i)は、日付=必要な日付のためにwhere句を入れ、その後、全体ではなく、日時の時間+分に他の操作を行います。

ii)間隔が1分の場合、タイムスタンプまたはdate_formatの部分文字列も試して、最も近い分に丸めることができます。

例えば、

SELECT create_time 
FROM timeTable 
WHERE create_time 
IN (

SELECT min(create_time) 
FROM timeTable 
GROUP BY DATE_FORMAT(`create_time` , 'Y-M-D %H:%i') 
); 
関連する問題