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

数学运算符和函数

算数运算符

数学函数

时间日期函数

函数列表

日期格式化参数

file

自定义函数

用户自定义函数 (user-defined function, UDF),是对Mysql扩展的一种途径,用法与内置函数相同。

函数的参数和返回值可以是Mysql任意的列类型,并且他们之间没有必然的内在的联系,并且参数个数理论上不可以超过1024个。

创建函数

  1. 函数体由合法的SQL语句构成

  2. 函数体可以是简单的select或者insert语句

SQL与java函数优先级

mysql函数可做处理,业务层可以做处理,优先使用哪一个?

  1. mysql函数肯定影响查询速度。(合理的表结构会减少不必要的函数使用,比如邮箱分开存储)

  2. 当需要函数时,比如时间格式化,优先放在业务逻辑层处理

  3. 在查询时使用函数,那么A列的索引将会无法使用,如果针对某列查询,而此列使用了函数, 那么此列将不会使用索引

最后更新于

这有帮助吗?