MySQL函数
有且只有一个返回值
CREATE DEFINER=`root`@`%` FUNCTION `函数名称`(`传入参数` int) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE names varchar(255);
SELECT
case when type = 5 then
GROUP_CONCAT(
CONCAT(CASE identity
WHEN 1 THEN case when name is not null then name else concat('无','-','男') end
WHEN 2 THEN '-'
ELSE ''
END
)
)
else
GROUP_CONCAT(
CONCAT(CASE identity
WHEN 1 THEN case when name is not null then name else concat('无','-','女') end
WHEN 2 THEN concat(name,'-','女','-','29岁')
ELSE ''
END
)
)
end
INTO names
FROM 表名
WHERE id = 传入参数;
RETURN names;
END
*注:GROUP_CONCAT---有长度限制(默认1024)
group_concat 长度限制(默认1024)
MySQL 修改长度限制
-
显示group_concat()的最大长度,结果时1024
SHOW VARIABLES LIKE 'group_concat_max_len'
-
设置全局
SET GLOBAL group_concat_max_len = 102400;
-
设置会话
SET SESSION group_concat_max_len = 102400;
*注:需要重启服务
配置项修改
- MySQL配置文件【my.ini】
group_concat_max_len = 102400