mysql.help_topic生成序列的方法实现

 更新时间:2023年10月30日 15:49:00   作者:wh柒八九  
本文探讨了如何使用MySQL的help_topic表生成序列,并介绍了相应的SQL查询语句和实现方法,具有一定的参考价值,感兴趣的可以了解一下

本文来说下如何使用mysql.help_topic生成序列

问题由来

有时我们在生成一些时间轴类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_topic来解决此类问题,通过序列和日期函数相结合来满足我们的业务需求。

help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数,但是8.0.17版本的只有686条数据,超过这个数字,我们就需要己自定义一张表。

可以用做计数的临时表,查询的语句只会用help_topic计数,超出的部分其实都是脏数据。

使用实例

SELECT
	DATE( DATE_ADD( '2022-05-01', INTERVAL @s DAY ) ) AS date,
	'异常总条数' 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')

实例结果

本周,本月,本季度,本年的第一天和最后一天

#查询本周第一天
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

查询本日,本周,本月,本年的数据

#查询本日的数据
SELECT T.* FROM buz_sampling_data T
WHERE TO_DAYS(TIME) = TO_DAYS(NOW())


#查询本周的数据
SELECT T.* FROM buz_sampling_data T
WHERE YEARWEEK(TIME,1) = YEARWEEK(NOW(),1)


#查询本月的数据
SELECT T.* FROM buz_sampling_data T
WHERE MONTH(TIME) = MONTH(NOW())


#查询本年的数据
SELECT T.* FROM buz_sampling_data T
WHERE YEAR(TIME) = YEAR(NOW())

到此这篇关于mysql.help_topic生成序列的方法实现的文章就介绍到这了,更多相关mysql.help_topic生成序列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql将字符串按照指定字符分割的正确方法

    Mysql将字符串按照指定字符分割的正确方法

    字符串分割是我们开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于Mysql将字符串按照指定字符分割的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • clickhouse中Nullable与非空字段的建表与类型互转方式

    clickhouse中Nullable与非空字段的建表与类型互转方式

    这篇文章主要介绍了clickhouse中Nullable与非空字段的建表与类型互转方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MySQL中处理大数据表的3种方案的实现与对比

    MySQL中处理大数据表的3种方案的实现与对比

    这篇文章主要为大家详细介绍了MySQL中处理大数据表的3种方案的实现与对比,文中的示例代码讲解详细,有需要的小伙伴可以根据需要进行选择
    2025-10-10
  • MySQL性能指标解读与监控的具体方法

    MySQL性能指标解读与监控的具体方法

    在数据库的世界里,MySQL凭借其开源、高效、稳定的特性,成为众多企业和开发者的首选,为了确保MySQL数据库能够稳定、高效地运行,深入理解性能指标并掌握有效的监控方法至关重要,本文将围绕QPS、TPS、缓存命中率等关键性能指标展开解读,需要的朋友可以参考下
    2025-06-06
  • 从入门到精通MySQL 数据库索引(实战案例)

    从入门到精通MySQL 数据库索引(实战案例)

    索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或频繁更新字段,本文给大家介绍MySQL 数据库索引实战案例,感兴趣的朋友一起看看吧
    2025-06-06
  • 一文带你将csv文件导入到mysql数据库(亲测有效)

    一文带你将csv文件导入到mysql数据库(亲测有效)

    一直不大懂csv怎么通过mysql图形化的界面直接导入,看了很多帖,才觉得自己会了,下面这篇文章主要给大家介绍了关于将csv文件导入到mysql数据库的相关资料,需要的朋友可以参考下
    2022-08-08
  • Mysql 删除数据库drop database详细介绍

    Mysql 删除数据库drop database详细介绍

    在mysql中,我们可以使用DROP DATABASE来删除数据库,并且数据库中所有表也随之删除。本文通过实例向各位码农介绍DROP DATABASE的使用方法,需要的朋友可以参考下
    2016-11-11
  • MySQL无服务及服务无法启动的终极解决方案分享

    MySQL无服务及服务无法启动的终极解决方案分享

    又是MySQL的问题,之前已经遇见过一次本地MySQL服务无法启动的情况,现在又出现了,下面这篇文章主要给大家介绍了关于MySQL无服务及服务无法启动的终极解决方案,需要的朋友可以参考下
    2022-06-06
  • MySQL限制查询和数据排序介绍

    MySQL限制查询和数据排序介绍

    这篇文章主要介绍了MySQL限制查询和数据排序介绍,通过limit可以限制返回结果的行数,而当数据查询出来以后,我们可以对数据进行排序处理。在末尾使用order by语句,下文相关详细介绍,需要的小伙伴可以参考一下
    2022-03-03
  • MySQL创建、修改和删除表操作指南

    MySQL创建、修改和删除表操作指南

    MySQL是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD,下面这篇文章主要给大家介绍了关于MySQL创建、修改和删除表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论