MySQL搜索并替换不属于它的整个字段

时间:2017-01-06 07:34:36

标签: 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'

我遇到的问题是我不想替换'Mark Frey'( - > Tom Frey)或'Markus'( - > Tomus)中的'Mark'。 我只想替换整个字段,而不是它的一部分。结果应如下所示:

马克 - >汤姆

Mark Frey - >马克弗雷

马库斯 - >马库斯

是否可以在phpmyadmin中执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以在WHERE子句中添加一个条件,检查meta_value字段是否与您要替换的内容完全相等,在本例中为'Mark'

UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'Mark', 'Tom') 
WHERE meta_key LIKE 'employee' AND
      meta_value = 'Mark'

请注意,我删除了包含表和字段名称的单引号,因为它们不属于那里,至少不属于原始MySQL查询。

<强>更新

正如@HankyPanky指出的那样,你也可以直接更新meta_value

UPDATE wp_postmeta
SET meta_value = 'Tom'
WHERE meta_key LIKE 'employee' AND
      meta_value = 'Mark'