2

特定のテーブルから、いくつかの日付範囲(つまり、過去1時間、今日、今週、過去30日間)の行をカウントしたいと思います。

特定のユーザーがこの範囲のそれぞれの制限に達したかどうかを判断できるようにするには、この期間/日付の期間にいくつのエントリがあるかを知る必要があります。たとえば、ユーザーは1か月に最大300のエントリを持つことができますが、(時間/日/週/月)の制限があります。

これまでのところ、私はこれにSELECT CASE似たサブクエリアプローチを試しています:mysqlのrangeによるグループ化

これを行うための最良の方法はどれですか?

4

1 に答える 1

4

mysql では、必要な日付のみがカウントされるように、if ステートメントで一連のカウント関数を使用できます。

SELECT COUNT(IF(date >= DATE_SUB(NOW(), INTERVAL 1 HOUR), 1, null)) AS hourHits, 

等々

コメントに従って編集されました

于 2012-06-24T06:44:24.720 に答える