Not suprisingly, most google results only returned things for doing this within some kind of PHP application. Probably because nobody belives in MySQL as a data warehouse, or a place to parse strings… In the do with what you have environment of a startup, I do not have that luxury. This function so far works decent, it’s not extremely robust, but it does a job.
CREATE FUNCTION `fn_getparam`(param varchar(55), url varchar(2048)) RETURNS varchar(2048) CHARSET latin1 COLLATE latin1_general_cs 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