MySQL的搜索,并在现场更换一些文字(MySQL search and replace some

2019-06-18 06:27发布

什么MySQL查询会做一个文本搜索,在一个特定领域替换表?

即搜索foo ,取而代之的bar有现场与值,以创纪录的hello foo变成hello bar

Answer 1:

更改table_namefield中的问题匹配您的表名和字段:

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
  • REPLACE (字符串函数)
  • INSTR (字符串函数)


Answer 2:

UPDATE table_name 
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');


Answer 3:

 UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);

例如像,如果我想取代约翰的所有出现由Mark下面我会使用,

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


Answer 4:

如果你想搜索和基于另一个领域,你可以做一个CONCAT的值替换:

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

只要有这样的一个位置,让其他人将立即找到它。



Answer 5:

该替换字符串函数将这样做。



Answer 6:

根据我的经验,最快的方法是

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';

INSTR()方法是第二快的和省略WHERE共子句是最慢的,即使该列未被编入索引。



Answer 7:

我用上面的命令行如下:更新表名设定FIELD =取代(FIELD,“与”,“与”); 目的是取代并与和(“A”应该是小写)。 问题是,它无法找到“和”数据库,但如果我使用像“%和%”,那么它可以是一个词,甚至那些已经小写的那些部分其他许多ANDS找到它一起。



文章来源: MySQL search and replace some text in a field