MySQL搜索并替换整个字段,而不是其中的一部分
我想替换wordpress数据库中的整个MySQL字段。我想将自定义字段“employee”中的“Mark”替换为“Tom” 我有以下工作查询:MySQL搜索并替换整个字段,而不是其中的一部分,mysql,search,replace,phpmyadmin,Mysql,Search,Replace,Phpmyadmin,我想替换wordpress数据库中的整个MySQL字段。我想将自定义字段“employee”中的“Mark”替换为“Tom” 我有以下工作查询: UPDATE 'wp_postmeta' SET 'meta_value' = replace(meta_value, 'Mark', 'Tom') WHERE 'meta_key' LIKE 'employee' 我遇到的问题是,我不想在“马克·弗雷”(>汤姆·弗雷)或“马库斯”(>汤姆·弗雷)中替换“马克”。 我只想替换整个字段,而不是它的一
UPDATE 'wp_postmeta'
SET 'meta_value' = replace(meta_value, 'Mark', 'Tom')
WHERE 'meta_key' LIKE 'employee'
我遇到的问题是,我不想在“马克·弗雷”(>汤姆·弗雷)或“马库斯”(>汤姆·弗雷)中替换“马克”。
我只想替换整个字段,而不是它的一部分。结果应该如下所示:
马克->汤姆
马克·弗雷->马克·弗雷
马库斯->马库斯
在phpmyadmin中可以这样做吗?您可以在
WHERE
子句中添加一个条件,检查meta_值
字段是否正好等于您要替换的内容,在这种情况下标记
:
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'Mark', 'Tom')
WHERE meta_key LIKE 'employee' AND
meta_value = 'Mark'
请注意,我删除了表名和字段名的单引号,因为它们不属于表名和字段名,至少不属于原始MySQL查询
更新:
正如@HankyPanky所指出的,您也可以直接更新meta\u值
:
UPDATE wp_postmeta
SET meta_value = 'Tom'
WHERE meta_key LIKE 'employee' AND
meta_value = 'Mark'
如果确切的
meta_值
已知,我们不能删除REPLACE
调用并使用简单赋值吗SET meta_value='Tom'
@HankyPanky首先考虑这个问题会有所帮助:-)我尝试了第二个解决方案(没有替换),它成功了。