Mysql函数总结
NULL值处理
ifnull
如果为null,则返回0 :
select ifnull(null, 0);ifnull 函数:
如果参数1 为null,则返回参数2,否则返回本身
如果参数1 表达式有问题,也返回参数2: select IFNULL(1/0,'yes'); -> yes
应用场景:如果在进行右连接或者左连接时,有一些为空的字段,可以进行这样的处理
select ifnull( (B.submission_time-A.submission_time),0) from A right join B on 条件。
if + isnull
select if(isnull(null), 0, 1);isnull函数:
判断值是否是null,如果是null,则返回1(代表true),否则返回0(代表false)
if函数:
当参数1为true时,返回参数2, 否则返回参数3
注意:
case when
数学运算符和函数
算数运算符
数学函数
时间日期函数
函数列表
日期格式化参数

自定义函数
用户自定义函数 (user-defined function, UDF),是对Mysql扩展的一种途径,用法与内置函数相同。
函数的参数和返回值可以是Mysql任意的列类型,并且他们之间没有必然的内在的联系,并且参数个数理论上不可以超过1024个。
创建函数
函数体由合法的SQL语句构成
函数体可以是简单的select或者insert语句
SQL与java函数优先级
mysql函数可做处理,业务层可以做处理,优先使用哪一个?
mysql函数肯定影响查询速度。(合理的表结构会减少不必要的函数使用,比如邮箱分开存储)
当需要函数时,比如时间格式化,优先放在业务逻辑层处理
在查询时使用函数,那么A列的索引将会无法使用,如果针对某列查询,而此列使用了函数, 那么此列将不会使用索引
最后更新于
这有帮助吗?