日期:2014-05-16  浏览次数:20826 次

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