列 id、title、date を持つ単純な mysql テーブルがあるとします。毎日複数の行を持つことができますが、毎日が行を持つわけではありません。たとえば、日付が 6 月 15 日の行が 5 行あり、日付が 6 月 14 日の行が 0 行あるとします。行がないため、6 月 14 日を除く過去 7 日間のすべての結果を取得するにはどうすればよいですか。したがって、現在の日付から 7 日を差し引くだけではありません。行がまったくない過去7日間のみを取得したい。
次に、日付ごとのグループのように、毎日を単一の結果として返したいのですが、タイムスタンプの年/月/日の部分によって、返されるのは7つの結果のみであり、各結果は配列のようなものです個々の行。
それが理にかなっていることを願っています。何か案は?
編集:次のようにできることに気づきました:
WHERE Date BETWEEN DATE_SUB( NOW(), INTERVAL DATEDIFF( NOW(), (SELECT Date FROM test GROUP BY Date LIMIT 7,1 ) ) DAY ) and NOW()
しかし、これにより SQL 構文エラーが発生します。私がやろうとしているのは、サブクエリと日付ごとにグループ化して、毎日 1 つの結果を取得し、オフセット 7 から始まる 1 つの結果を返し、それを実行しDATEDIFF
てDATE_SUB
、INTERVAL x DAYS