ホームページ > バックエンド開発 > PHPチュートリアル > MySQL はテーブルから「最新」の 3 日間のレコードを取得します。 SQL ステートメントはどのように記述しますか?

MySQL はテーブルから「最新」の 3 日間のレコードを取得します。 SQL ステートメントはどのように記述しますか?

WBOY
リリース: 2016-06-23 14:10:15
オリジナル
1024 人が閲覧しました

Mysqlはテーブルから最新3日間のレコードを取得する、SQL文の書き方です。インターネットで調べたものですが、これは 現在時刻を開始点として過去数日間の記録を取得するselect * from報酬 where DATE_SUB(CURDATE(), INTERVAL 4 DAY)
<= date( day) order by day desc


ディスカッション (解決策) への返信

それで、基準点は何であるべきだと思いますか?

直近の3日間は今日、昨日、一昨日です。現在の時刻から 3 日間遡ってフィルタリングします。

$startDate=date('Y-m-d',strtotime("-29 days"));
$endDate=date('Y-m-d');
$sql="報酬の作成時刻から * を選択>=" .$start." 00:00:00' and createTime<='".$end." 00:59:59'";

それで、基準点は何であるべきだと思いますか? たとえば、今日は 5 月 14 日ですが、表内のデータ日は 5 月 10 日までです。本来の目的は、8、9、10 の 3 日を取り出すことです。14 日を基準点として使用すると、次のようになります。 3 日分を前にします。取得した 3 日分は 12、13、14 (データなし) なので、要件を満たせません

最新の 3 日分は、今日、昨日、一昨日です。現在の時刻から 3 日間遡ってフィルタリングします。 4 階を見てください

try

select * from tt inner join(select date(day) as `day` from tt group by date(`day`) order by `day` desc limit 3) aon date(tt.day)=a.day
ログイン後にコピー
ログイン後にコピー

try

select * from tt inner join(select date(day) as `day` from tt group by date(`day`) order by `day` desc limit 3) aon date(tt.day)=a.day
ログイン後にコピー
ログイン後にコピー
このクエリの結果は日付順に並べられていません。何が起こっていますか?

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート