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(); |