【发布时间】:2026-02-07 11:50:01
【问题描述】:
我想创建一个这样的函数:
CREATE FUNCTION fn_geturlparam (param varchar(55), url varchar(2048)) RETURNS varchar(2048) CHARSET utf8 COLLATE utf8_general_ci
BEGIN
DECLARE val VARCHAR(2048);
DECLARE _param VARCHAR(60) DEFAULT CONCAT(param,'=');
SELECT
CASE
WHEN locate(concat('&',_param), url) > 0
THEN right(url, length(url) - (locate(concat('&',_param),url)+length(concat('&',_param))-1))
WHEN locate(concat('?',_param), url) > 0
THEN right(url, length(url) - (locate(concat('?',_param),url)+length(concat('?',_param))-1))
WHEN locate(concat('#',_param), url) > 0
THEN right(url, length(url) - (locate(concat('#',_param),url)+length(concat('#',_param))-1))
WHEN locate(_param,url) > 0
THEN right(url, length(url) - (locate(_param,url)+length(_param)-1) )
ELSE null
END
INTO val;
SET val = replace(replace(left(val, locate('&',concat(val,'&'))-1),'%20',' '),'+',' ');
RETURN val;
END
我尝试了一切,但没有运气。我正在使用 MySQL 5.5.15
这是错误:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '' 附近使用正确的语法
【问题讨论】: