当前位置:  开发笔记 > 后端 > 正文

MySQL搜索并替换字段中的一些文本

如何解决《MySQL搜索并替换字段中的一些文本》经验,为你挑选了4个好方法。

MySQL查询将在表中的某个特定字段中进行文本搜索和替换?

即搜索foo并替换为具有bar值的字段的记录hello foo变为hello bar.



1> Joe Skora..:

更改table_namefield匹配您的表名称和相关字段:

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;

REPLACE(字符串函数)

INSTR(字符串函数)


UPDATE [table_name] SET [field_name] = REPLACE(`[field_name]`,"foo","bar");
和Pring一样,如果你要留下这样的评论,你可能想解释一下原因.这是原始建议中的错误,还是你的错误?并且你知道在对数据库进行任何彻底的更改之前,你应该先备份它吗?
我认为不使用`WHERE instr(field,'foo')> 0;`(因此它不会执行2次搜索)更快...我错了吗?
@treddell,SQL字符串中没有位置从1开始.
@inemanja,没有`WHERE`子句的@Air你对所有行执行`UPDATE` ...

2> thesmallprin..:
UPDATE table_name 
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');


帮助过我.对于所有新手,请取下方括号.

3> Umesh Patil..:
 UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);

例如,如果我想用Mark替换所有出现的John,我会在下面使用,

UPDATE student SET student_name = replace(student_name, 'John', 'Mark');



4> 小智..:

如果你想根据另一个字段的值进行搜索和替换,你可以做一个CONCAT:

update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));

只是把这个放在这里,以便其他人立即找到它.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有