Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL搜索并替换整个字段,而不是其中的一部分_Mysql_Search_Replace_Phpmyadmin - Fatal编程技术网

MySQL搜索并替换整个字段,而不是其中的一部分

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' 我遇到的问题是,我不想在“马克·弗雷”(>汤姆·弗雷)或“马库斯”(>汤姆·弗雷)中替换“马克”。 我只想替换整个字段,而不是它的一

我想替换wordpress数据库中的整个MySQL字段。我想将自定义字段“employee”中的“Mark”替换为“Tom”

我有以下工作查询:

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首先考虑这个问题会有所帮助:-)我尝试了第二个解决方案(没有替换),它成功了。