亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql 查詢每個月發布的文章數。月份無數據顯示為0。如何寫SQL呢

mysql 查詢每個月發布的文章數。月份無數據顯示為0。如何寫SQL呢

PHP
手掌心 2019-03-18 00:05:25
article表 字段id (int),title (string),createtime (時間戳) 比如要查詢2015年3月到2017年8月份,每個自然月發布的文章是多少篇。月份沒有發布文章的顯示為0。比如: Array ( [0] => Array ( [month] => 2015-3 [times] => 0 ) [1]=> Array ( [month] => 2015-4 [times] => 4 ) [2]=> Array ( [month] => 2015-5 [times] => 0 ) ... [...]=> Array ( [month] => 2017-8 [times] => 4 ) )
查看完整描述

6 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

select DATE_FORMAT(createtime,'%Y-%m'), count(*) from article group by DATE_FORMAT(createtime,'%Y-%m')
針對沒有數據的月份,可以放在程序里循環處理一下

查看完整回答
反對 回復 2019-03-18
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

效率比較好的建議是程序算出開始時間和結束時間,數據庫只是單純的between...and...,然后可以對結果使用redis緩存下來

查看完整回答
反對 回復 2019-03-18
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

select month ( create_time ) ,count(*) from orders where year ( create_time) = 2015 group by month (create_time) 

我表里的時間存的是DATETIME 2015-05-05 23:59:59
樓上的兄弟說的很明白,沒有數據,就沒有默認值一說

查看完整回答
反對 回復 2019-03-18
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

首先一點,沒有數據的話,mysql也不會有數據,所以會缺失月份。尼需要用程序填充

SELECT COUNT(1) AS total,FROM_UNIXTIMESTAMP(createtime,'%Y-%m') as m from article GROUP BY m ORDER BY m ASC
查看完整回答
反對 回復 2019-03-18
  • 6 回答
  • 0 關注
  • 3199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號