将函数集替换为MySQL中的存储过程或函数?

时间:2013-08-22 18:45:45

标签: mysql information-schema

如何将我的替换函数转换为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');

不确定这是否是正确的做法?

1 个答案:

答案 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 ;