MySql常用(三、流程和其他)函数
5.4流程函数函数名 | 描述 | 举例 |
IF(expr1,expr2,expr3) | 如果 expr1 是 TRUE (expr1 <> 0 and expr1 <> NULL) ,则 IF() 的返回值为 expr2 ; 否则返回值则为 expr3 。 | 见后面代码 |
IFNULL(expr1,expr2) | 假如 expr1 不为 NULL ,则 IFNULL() 的返回值为 expr1 ; 否则其返回值为 expr2 。 | 见后面代码 |
select id, if(is_check_in = '1', CONCAT(name, ':Need'), CONCAT(name, ':Not')) as CheckIn
FROM t_conf_visit_task
where is_delete = '0' and name is not null order by id asc limit 0, 5;
select id, ifnull(is_user, 0) as user
FROM t_conf_visit_task
where is_delete = '0' order by id asc limit 0,5;
CASE
WHEN expr1
THEN result1
WHEN expr2
THEN result2
......
ELSE [result]
END
当满足条件expr[1、2、3...]时,返回对应的result,否则返回ELSE后的result。
select plan_id, case
when interval_type = '1'
then '每日'
when interval_type = '2'
then '每周'
when interval_type = '3'
then '每月'
else '自定义'
end as '目标时间间隔'
from t_visit_plan
where is_delete = '0' order by plan_id asc limit 0,5;
CASE expr
WHEN value1
THEN result1
WHEN value2
THEN result2
......
ELSE [default]
END
当满足条件expr = value[1、2、3...]时,返回对应的result,否则返回ELSE后的result。
select plan_id,
case interval_type
when '1' then '每日'
when '2' then '每周'
when '3' then '每月'
else '自定义'
end as '目标时间间隔'
from t_visit_plan
where is_delete = '0' order by plan_id asc limit 0,5;
5.5其他常用函数函数名称 | 功能 | 举例 | 结果 |
LOAD_FILE(file_name) | 读取文件并将这一文件按照字符串的格式返回。文件的位置必须在服务器上,你必须为文件制定路径全名,而且你还必须拥有FILE 特许权。文件必须可读取,文件容量必须小于 max_allowed_packet字节。若文件不存在,或因不满足上述条件而不能被读取, 则函数返回值为 NULL。 select LOAD_FILE("E:\grirms4_0410.sql"); | | 输出文件内容 |
DATABASE() | 返回当前数据库名 | | |
VERSION() | 返回当前数据库版本 | | |
USER() | 返回当前登录用户 | | |
INET_ATON(ip) | 返回IP地址的网络字节序表示 | select INET_ATON('192.168.1.1'); | 3232235777 |
INET_NTOA(num) | 返回网络字节序代表的IP地址 | select INET_NTOA(3232235777); | 192.168.1.1 |
PASSWORD(str) | 返回字符串str的加密版本,一个41位长的字符串 | | |
MD5(str) | 返回str的MD5值 | | |
UUID() | 返回一个通用唯一标识符 (UUID) | select UUID(); | |