24、MySQL日期时间函数与控制流程函数

一、日期跟时间函数

例题:根据上图中的函数,统计每周的加班情况。

想到用group_by来做,但是每天都是不一样的日期,应该怎么办呢
用week(date)函数即可

再套用查询模型:group_by配合sum即可。

二、控制流程函数

例题:现有表中有三个字段0,1,2.(0代表女,1代表男,2代表妖)。想实现一种功能,直接给客户显示出中文。

这里就用到了控制流程函数了。其中的case,when,then就是流程控制函数了。

在查询的时候,即在sql中加入流程控制函数了。

相应的还有ifnull,nullif等函数。

三、系统调试函数

返回当前用户及所在主机。

返回当前操作的数据库

返回当前sql版本

三、使用函数应该注意的地方

问:如果MySQL函数和php函数都实现某个功能,优先使用哪一个?

1:mysql的函数肯定是要影响查询速度的。应该在建表时,通过合理的表结构减少函数的使用,比如上一篇文章中所讲的email按照@前后拆分。

2:如果确实要用函数,比如时间得格式化,在mysql与php中都有,那么应该优先放在业务逻辑层,即php层处理。

3:在查询时使用了函数,最大的一个坏处。
以date_format(A),则A列的索引将无法使用。

如果你针对某列查询,而此列用上了函数来判断,那么此列将不再使用索引

举例:比如想查询后缀等于“qq.com”的email。
本来,email列是有索引的,可以加快查询速度。但是因为你使用的并不是email列,而是函数处理后的email的返回值。因此,email列的查询就非常缓慢了。

总结:where条件中,对某列使用了函数,那么此列的索引不发挥作用。

再详细点说,比如where id = 5,那么直接索引id=5的值,很快。
如果where条件中加了函数,那么就失去了索引功能,查询就很慢了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...
    lumicinta阅读 14,517评论 3 196
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,366评论 5 116
  • 语 句 功 能 数据操作 SELECT——从数据库表中检索数据行和列INSERT——向数据库表添加新数据行DELE...
    戰敭阅读 10,517评论 0 53
  • 07322王翠英 亚瑟的妈妈让他去睡觉,不让他看电视,所以亚瑟生气了。他非常非常的生气,他的气爆发成闪电冰雹,形成...
    王翠英阅读 3,567评论 0 0
  • 1、起床比较麻利,按时到校,自己买早餐饼; 2、中午不太舒服,但还是接受建议吃了点午饭,午睡起床比较好,虽然不太舒...
    涓涓小泉阅读 906评论 0 0

友情链接更多精彩内容