ホームページ >バックエンド開発 >PHPチュートリアル >今日と昨日の投稿数をカウントするには、php mysql ステートメントをどのように記述しますか?

今日と昨日の投稿数をカウントするには、php mysql ステートメントをどのように記述しますか?

WBOY
WBOYオリジナル
2016-06-23 14:10:09916ブラウズ

今日と昨日の投稿数をカウントするには、php mysql ステートメントをどのように記述すればよいですか?緊急! ! !


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

分析のためにテーブル構造を投稿することをお勧めします

当時の形式がわからないため、データテーブルの構造を投稿するのが最善ですデータテーブルポストのフィールドは

最も単純なテーブル構造は次のとおりです。

昨日の datetime=curdate()-1 のテーブルから count(id) を選択
今日の datetime=curdate() のテーブルから count(id) を選択

select date_format(tb_send_date, '%Y-%m-%d' ) as date, count(*) as cnt from tbl_name group by to_days(tb_send_date) order by desc limit 2

$today_rows="select count(*) from table where tb_send_date>='".date('Y-m-d 00:00:00')."' and tb_send_date<='".date('Y-m-d 23:59:59')."'";//今天$tomorrow=date("Y-m-d",strtotime("-1 day")); $tomorrow_rows="select count(*) from table where tb_send_date>='".$tomorrow." 00:00:00' and tb_send_date<='".$tomorrow." 23:59:59'";;//昨天

かつて誰かが私に、mysql の where 句で使用する関数をできるだけ少なくするように教えてくれました。インデックスが無効になります

すごいです
かつて誰かが、インデックスが無効になるため、mysql の where 句で使用する関数をできるだけ少なくするように教えてくれました

さて、あなたが言及した where 句の関数は SQL からのものです、間違えたようです

Today
select count (*) from table where date_format(tb_send_date,"%Y-%m-%d")=curdate()

Yesterday
select count(*) from table where date_format(tb_send_date,"%Y-%m-%d ")=DATE_SUB(curdate(),INTERVAL 1 DAY)


$today_rows="select count(*) from table where tb_send_date>='".date('Y-m-d 00:00:00')."' and tb_send_date<='".date('Y-m-d 23:59:59')."'";//今天$tomorrow=date("Y-m-d",strtotime("-1 day")); $tomorrow_rows="select count(*) from table where tb_send_date>='".$tomorrow." 00:00:00' and tb_send_date<='".$tomorrow." 23:59:59'";;//昨天

かつて誰かが私に、mysql の where 句でできるだけ少ない関数を使用するように教えてくれました、インデックスが無効になるためです

さて、あなたが言及したwhere句の機能はSQLです、間違いを犯したようです
簡素化したい場合は、データベースをタイムスタンプに変更することをお勧めします。比較と処理が簡単です



$today_rows="select count(*) from table where tb_send_date>='".date('Y-m-d 00:00:00')."' and tb_send_date<='".date('Y-m-d 23:59:59')."'";//今天$tomorrow=date("Y-m-d",strtotime("-1 day")); $tomorrow_rows="select count(*) from table where tb_send_date>='".$tomorrow." 00:00:00' and tb_send_date<='".$tomorrow." 23:59:59'";;//昨天

誰かが私にmysqlのwhere句を教えてくれました 関数の使用はできるだけ少なくしてください。インデックスが無効になるためです

さて、あなたが言及したwhere句の機能は SQL です。間違いを犯したようです
単純化したい場合は、データベースをタイムスタンプに変更するのが最善です。わかりました。比較は簡単に処理できます


$today_rows="select count(*) from table where tb_send_date>='".date('Y-m-d 00:00:00')."' and tb_send_date<='".date('Y-m-d 23:59:59')."'";//今天$tomorrow=date("Y-m-d",strtotime("-1 day")); $tomorrow_rows="select count(*) from table where tb_send_date>='".$tomorrow." 00:00:00' and tb_send_date<='".$tomorrow." 23:59:59'";;//昨天

以前、誰かが私に、MySQL の where 句で次のことを教えてくれました。インデックスが無効になるため、できるだけ関数を使用しないでください

さて、あなたが言及した where 句の関数は SQL のもののようです

申し訳ありませんが、SQL です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。