【发布时间】:2013-08-22 18:45:44
【问题描述】:
如何将我的替换函数转换为 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');
不确定这是否是正确的方法?
【问题讨论】:
-
@MarcB,忘记添加我的试用版。感谢您查看此内容。
-
您的过程仅使用两个参数定义,但您使用 3... 调用它
-
@MarcB - system 函数
REPLACE正在被调用,其中包含三个参数,其中一个来自正在更新的表。 用户定义函数updateURL仍在使用两个参数调用。 [至少在最后的代码示例中,我认为 OP 的第一个示例有点不稳定。]