2019年9月

记录在项目中使用的MySql相关用法.


SUM()函数按条件求和

  • 一般求和 (加和所有lessonStep)

    > sum(lessonStep) 
  • 条件求和 (当 lessonStep为1时, 加1 否则为0)

    > sum( lessonStep = 1 ), 0 )
  • 复杂条件求和 (只统计LessonStep为1, 否则为0)

    > sum(if(lessonStep = 1, lessonStep, 0))
    

COUNT()函数按条件求和

一般求和 (加和所有lessonStep)

count(lessonStep)

条件求和 (当 lessonStep为1时, 加1 否则为0)

count(lessonStep=1 or null)

复杂条件求和 (只统计LessonStep为1, 否则为0)

count(if(lessonStep=1,true,null))

TIMESTAMPDIFF()函数

求两个时间之前间隔 (单位为秒 SECOND)

TIMESTAMPDIFF(SECOND, learing.createDate , learing.modifiedDate) as learnTime,

TO_DAYS函数

用于时间比对

to_days(createDate) = to_days('2019-08-01')

IFNULL

设置默认值

IFNULL( sum( google_minicourserelation.STATUS != 2 AND to_days( google_minicourserelation.createDate) <= to_days(#{param1})), 0 ) AS countMP,