我评论说,在尝试创建一个函数来解析特殊字符并递归调用时遇到问题。
Mysql代码:
DROP FUNCTION IF EXISTS fn_obt_val_par_campo;
DELIMITER $$
CREATE FUNCTION fn_obt_val_par_campo(campo VARCHAR(80))
RETURNS VARCHAR(80)
BEGIN
DECLARE par_campo VARCHAR(80);
DECLARE for_campo VARCHAR(80);
DECLARE ind_campo INT DEFAULT 1;
SET for_campo = LOWER(campo);
WHILE ind_campo = 1 DO
IF INSTR(for_campo, 'á') != 0 THEN
SET par_campo = UPPER(REPLACE(for_campo, 'á', 'a'));
SET for_campo = par_campo;
SET ind_campo = 1;
ELSEIF INSTR(for_campo, 'é') != 0 THEN
SET par_campo = UPPER(REPLACE(for_campo, 'é', 'e'));
SET ind_campo = 1;
ELSEIF INSTR(for_campo, 'í') != 0 THEN
SET par_campo = UPPER(REPLACE(for_campo, 'í', 'i'));
SET ind_campo = 1;
ELSEIF INSTR(for_campo, 'ó') != 0 THEN
SET par_campo = UPPER(REPLACE(for_campo, 'ó', 'o'));
SET ind_campo = 1;
ELSEIF INSTR(for_campo, 'ú') != 0 THEN
SET par_campo = UPPER(REPLACE(for_campo, 'ú', 'u'));
SET ind_campo = 1;
ELSE
SET par_campo = UPPER(for_campo);
SET ind_campo = 0;
END IF;
END WHILE;
RETURN par_campo;
END;
$$
DELIMITER ;
咨询永无止境,连接被阻塞mysql:
SELECT fn_obt_val_par_campo('ALVARZ') AS CAMPO
希望您能帮助我解决我的问题。
最佳答案
这与特殊字符无关:
CREATE FUNCTION fn_obt_val_par_campo(campo VARCHAR(80))
RETURNS VARCHAR(80);
^---this is the error
BEGIN
create/begin 之间不允许使用分隔符,仅此而已。
关于php - 解析特殊字符 - Function Mysql 5.5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897274/