MSSQL和Mysql自定义函数与存储过程_MySQL
(A,B,C),
我们需要得出一个列
数据
A
B
C
这在系统自己种并不包含,需要自定义函数,先看看MSSQL的自定义函数:
CREATE function StrSplit(@c varchar(2000),@split varchar(2)=',')
returns @t table(col varchar(100))
as
begin
while(charindex(@split,@c)0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
GO
使用的时候
select * from dbo.StrSplit('52,50,55',','))
即可。
在MYSQL里面,我也希望能用自定义函数,但是,目前的版本并不支持返回table这种类型的函数,所以不得不考虑使用存储过程。
首先,了解mysql创建临时表的语句:
set global log_bin_trust_function_creators = 1;
DELIMITER $$
DROP FUNCTION IF EXISTS `Myf`$$
CREATE DEFINER=`root`@`%` FUNCTION `Myf`() RETURNS varchar(50) CHARSET utf8
begin
return concat('-FUNCTION');
end$$
DELIMITER ;