mysql.help_topic生成序列的方法實現(xiàn)
本文來說下如何使用mysql.help_topic生成序列
問題由來
有時我們在生成一些時間軸類似的數(shù)據(jù)時,要求數(shù)據(jù)庫不管有沒有指定天的數(shù)據(jù),都要生成該時間節(jié)點,可用mysql.help_topic來解決此類問題,通過序列和日期函數(shù)相結(jié)合來滿足我們的業(yè)務需求。

help_topic本身是Mysql一個幫助解釋注釋表,用于解釋Mysql各種專有名詞,由于這張表數(shù)據(jù)ID是從0順序增加的,方便我們用于計數(shù),但是8.0.17版本的只有686條數(shù)據(jù),超過這個數(shù)字,我們就需要己自定義一張表。
可以用做計數(shù)的臨時表,查詢的語句只會用help_topic計數(shù),超出的部分其實都是臟數(shù)據(jù)。
使用實例
SELECT
DATE( DATE_ADD( '2022-05-01', INTERVAL @s DAY ) ) AS date,
'異??倵l數(shù)' as e_name,
@s := @s + 1 AS `index`
FROM
mysql.help_topic,
( SELECT @s := 0 ) temp
WHERE
@s <= DATEDIFF('2022-05-31','2022-05-01')
實例結(jié)果

本周,本月,本季度,本年的第一天和最后一天
#查詢本周第一天 SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) AS TIME #查詢本周的最后一天 SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE())-6 DAY) AS TIME #查詢本月的第一天 SELECT DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) AS TIME #查詢本月的最后一天 SELECT LAST_DAY(CURDATE()) AS TIME #當前quarter的第一天: select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01'); #當前quarter的最后一天: select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month); #當年第一天: SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY); #當年最后一天: SELECT concat(YEAR(now()),'-12-31');
新增一個星期,一個月,一個季度,一年
#新增一個星期 SELECT DATE_ADD(now(), INTERVAL 1 week) time #新增一個月 SELECT DATE_ADD(now(), INTERVAL 1 month) time #新增一個季度 SELECT DATE_ADD(now(), INTERVAL 1 quarter) time #新增一年 SELECT DATE_ADD(now(), INTERVAL 1 year) time
查詢本日,本周,本月,本年的數(shù)據(jù)
#查詢本日的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE TO_DAYS(TIME) = TO_DAYS(NOW()) #查詢本周的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE YEARWEEK(TIME,1) = YEARWEEK(NOW(),1) #查詢本月的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE MONTH(TIME) = MONTH(NOW()) #查詢本年的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE YEAR(TIME) = YEAR(NOW())
到此這篇關(guān)于mysql.help_topic生成序列的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)mysql.help_topic生成序列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
clickhouse中Nullable與非空字段的建表與類型互轉(zhuǎn)方式
這篇文章主要介紹了clickhouse中Nullable與非空字段的建表與類型互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
MySQL中處理大數(shù)據(jù)表的3種方案的實現(xiàn)與對比
這篇文章主要為大家詳細介紹了MySQL中處理大數(shù)據(jù)表的3種方案的實現(xiàn)與對比,文中的示例代碼講解詳細,有需要的小伙伴可以根據(jù)需要進行選擇2025-10-10
從入門到精通MySQL 數(shù)據(jù)庫索引(實戰(zhàn)案例)
索引是數(shù)據(jù)庫的目錄,提升查詢速度,主要類型包括BTree、Hash、全文、空間索引,需根據(jù)場景選擇,建議用于高頻查詢、關(guān)聯(lián)字段、排序等,避免重復率高或頻繁更新字段,本文給大家介紹MySQL 數(shù)據(jù)庫索引實戰(zhàn)案例,感興趣的朋友一起看看吧2025-06-06
一文帶你將csv文件導入到mysql數(shù)據(jù)庫(親測有效)
一直不大懂csv怎么通過mysql圖形化的界面直接導入,看了很多帖,才覺得自己會了,下面這篇文章主要給大家介紹了關(guān)于將csv文件導入到mysql數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2022-08-08
Mysql 刪除數(shù)據(jù)庫drop database詳細介紹
在mysql中,我們可以使用DROP DATABASE來刪除數(shù)據(jù)庫,并且數(shù)據(jù)庫中所有表也隨之刪除。本文通過實例向各位碼農(nóng)介紹DROP DATABASE的使用方法,需要的朋友可以參考下2016-11-11

