日付値の間の行を取得:MySQLは、日付に関係なく、私は次のクエリを実行し、すべての行が返さ取得しています
SELECT DISTINCT p.name, p.category, u.f_name, t.name
FROM (
prizes p, tags t, results r
)
LEFT JOIN
users u
ON (r.user_id = u.id)
LEFT JOIN
f_tag_lookup tl
ON (tl.tag_id = t.id)
WHERE r.tag_id = t.id
AND r.date BETWEEN concat(date_format(LAST_DAY(now() - interval 1 month), '%Y-%m-'),'01') AND last_day(NOW() - INTERVAL 1 MONTH)
r.date
は、日時フィールドです。先月の日付は3行、今月の日付は3行ですが、すべての行が戻ってきていますか?
任意のポインタがありがとう。先月の最初と最後の日、つまり7月のすべての検索結果を返信したいと思います。
おかげで、
月(r.date)= 07と年(r.date)= 2009年はr.dateよりパフォーマンスが悪くないことがありますBETWEEN concat(date_format(LAST_DAY(now-)-interval 1 month)、 '%Y - %m - ')、' 01 ')AND last_day(NOW() - INTERVAL 1 MONTH) –
おそらくそうではありませんが、一定のuper boundに対する演算子間の使用はインデックス化された選択の方が最適です。 – cms
だから私は前の月の月(今() - 1ヶ月の間隔)をしますか? – codecowboy