0

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

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

4

1 回答 1

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 ;
于 2013-08-22T21:35:52.550 回答