如何将我的替换函数转换为MySQL中的存储过程或函数?
这是一个简化的更新脚本:
mysql> UPDATE content SET url = REPLACE (url, 'testsite', 'livesite') WHERE URL LIKE '%testsite%';
我希望能够存储它并通过查询运行此功能。
我的目标是这样的事情:
CALL myupdatefunction ('testsite', 'livesite', @url);
这是我到目前为止所尝试的:
DELIMITER //
CREATE PROCEDURE updateURL(OUT url1, OUT url2)
BEGIN
UPDATE content SET url = REPLACE (url, url1, url2) WHERE URL LIKE url1;
END //
DELIMITER ;
并致电
CALL updateURL('stringOld','stringNew');
不确定这是否是正确的做法?
答案 0 :(得分:1)
您只需进行一些更改,就必须在like
表达式中添加百分号
DELIMITER //
CREATE PROCEDURE updateURL(OUT url1, OUT url2)
BEGIN
UPDATE content SET url = REPLACE (url, url1, url2) WHERE URL LIKE CONCAT('%', url1, '%');
END //
DELIMITER ;