replace用的时候可以不使用关键词而使用一个表中的所有词做替换吗

@咸鱼哥哥 2020-05-22 11:34:45
正常用法
update IGNORE tushu.`全部数据` set `商品名称`=replace(`商品名称`,'旧书','');


现在问题是需要替换的关键词太多,要每个词单独写一条语句,可以把所有关键词放到一个表里,然后从这个表里依次读取做替换吗?
...全文
170 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
过眼浮云866 2020-06-03
  • 打赏
  • 举报
回复
-- 新建临时表,把关键字插入临时表的列里面; -- 新建存储过程 -- 调用存储过程如下: call up_test();
过眼浮云866 2020-06-03
  • 打赏
  • 举报
回复
DELIMITER $$ USE `test`$$ -- 过程使用实例 -- 如果此过程在实例里面存在,则删除 DROP PROCEDURE IF EXISTS `up_test`$$ -- 在此实例里面创建存储过程 CREATE DEFINER=`root`@`%` PROCEDURE `up_test`( ) SQL SECURITY INVOKER label_0: BEGIN -- 定义游标循环参数 DECLARE var_a VARCHAR(60), -- 设定游标循环停止位 DECLARE var_stop INT DEFAULT 0; -- 设定游标定义循环范围 DECLARE var_cursor CURSOR FOR SELECT qwe FROM test.abc -- abc 为存放关键字的表,qwe 为关键字的列; -- 监听器 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET var_stop = 1; -- 开启游标 OPEN var_cursor; FETCH var_cursor INTO var_a; WHILE var_stop <> 1 DO -- 数据循环处理 UPDATE tushu.`全部数据` SET `商品名称`=REPLACE(`商品名称`,var_a,''); FETCH var_cursor INTO var_a; END WHILE; CLOSE var_cursor; END$$ DELIMITER ;
过眼浮云866 2020-06-03
  • 打赏
  • 举报
回复
1,可以把所有关键词放到一个表里的某一个列里面; 2,用存储过程的游标方法,查询这个表里面的关键词字段,以这个字段为参数,做游标循环替换;
@咸鱼哥哥 2020-05-28
  • 打赏
  • 举报
回复
引用 3 楼 阿代公主 的回复:
可以关键字和替换的字放到一个表里面或临时表里,搞关联更改
能具体点吗
@咸鱼哥哥 2020-05-28
  • 打赏
  • 举报
回复
好像挺难搞呀,没有个好方法吗?我结贴吧
带我飞的云 2020-05-25
  • 打赏
  • 举报
回复
可以关键字和替换的字放到一个表里面或临时表里,搞关联更改
ACMAIN_CHM 2020-05-25
  • 打赏
  • 举报
回复
可以用存储过程,或者直接其它宿主程序比如C#,PHP
@咸鱼哥哥 2020-05-22
  • 打赏
  • 举报
回复
我刚看到有人回复了,怎么又没了?

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧