什么MySQL查询会做一个文本搜索,在一个特定领域替换表?
即搜索foo
,取而代之的bar
有现场与值,以创纪录的hello foo
变成hello bar
。
什么MySQL查询会做一个文本搜索,在一个特定领域替换表?
即搜索foo
,取而代之的bar
有现场与值,以创纪录的hello foo
变成hello bar
。
更改table_name
和field
中的问题匹配您的表名和字段:
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
UPDATE table_name
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);
例如像,如果我想取代约翰的所有出现由Mark下面我会使用,
UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
如果你想搜索和基于另一个领域,你可以做一个CONCAT的值替换:
update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));
只要有这样的一个位置,让其他人将立即找到它。
该替换字符串函数将这样做。
根据我的经验,最快的方法是
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
的INSTR()
方法是第二快的和省略WHERE
共子句是最慢的,即使该列未被编入索引。
我用上面的命令行如下:更新表名设定FIELD =取代(FIELD,“与”,“与”); 目的是取代并与和(“A”应该是小写)。 问题是,它无法找到“和”数据库,但如果我使用像“%和%”,那么它可以是一个词,甚至那些已经小写的那些部分其他许多ANDS找到它一起。