题
什么MySQL查询将尽一文本搜索和替换在一个特定领域中的一个表?
I.e。搜索 foo
和替换 bar
这样一个记录与一场有价值 hello foo
变得 hello bar
.
其他提示
UPDATE table_name
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
如果你想根据另一个字段的值进行搜索和替换,你可以做一个CONCAT:
update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));
只需将这个放在这里,以便其他人立即找到它。
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');
替换字符串功能将那样做。
根据我的经验,最快的方法是
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
INSTR()
方式是第二快的,省略 WHERE
子句总是最慢,即使该列没有编入索引。
我使用上面的命令行如下: 更新TABLE-NAME集FIELD = replace(FIELD,'和','和'); 目的是替换And with和(“A”应该是小写的)。问题是它无法找到“和”。在数据库中,但如果我使用像“%And%”那么它就可以找到它和许多其他属于一个词或甚至已经小写的那些。
不隶属于 StackOverflow