phpMyAdmin搜索有结果但替换查询返回0结果,求助排查
解决你的wp_postmeta替换查询无结果问题
哦,我立刻就发现问题所在了!你在REPLACE函数里踩了一个很容易犯的小坑——把LIKE语句里的通配符%用到REPLACE里了,但这俩的逻辑完全不一样啊!
LIKE '%jwp-test/%'里的%是通配符,用来匹配任意前后内容,所以能找到306条记录,这部分是对的。- 但
REPLACE(meta_value, '%jwp-test/%' , '')里的%会被当成字符串的一部分去匹配,而你的meta_value里根本没有带%的内容,自然替换不到任何东西,所以返回0条结果。
给你修正后的正确查询语句:
UPDATE `wp_postmeta` SET `meta_value` = REPLACE(`meta_value`, 'jwp-test/' , '') WHERE `meta_value` LIKE '%jwp-test/%'
另外给你个实用小建议:执行UPDATE这类修改数据的语句前,最好先用SELECT测试一下替换效果,避免误操作。比如:
SELECT `meta_value`, REPLACE(`meta_value`, 'jwp-test/' , '') AS replaced_value FROM `wp_postmeta` WHERE `meta_value` LIKE '%jwp-test/%'
这样能提前确认替换后的内容是不是你想要的,再执行UPDATE就更稳妥了。
内容的提问来源于stack exchange,提问作者JLongBeard
相关产品推荐
相关产品推荐

