MYPhpAdmin搜索查找结果,但在使用替换时显示0结果

时间:2018-03-24 03:28:00

标签: sql wordpress phpmyadmin

我正在尝试通过MyPhpAdmin运行替换查询并且它一直返回0结果,即使使用“搜索”选项卡,我得到306个结果。 有趣的是,我只是在另一个表上成功运行了相同的查询,但它确实有效。 这是查询

UPDATE `wp_postmeta` 
SET `meta_value` = REPLACE(`meta_value`, '%jwp-test/%' , '') 
WHERE `meta_value` LIKE '%jwp-test/%'

即使在搜索标签中:

SELECT * 
FROM  `wp_postmeta` 
WHERE  `meta_value` LIKE  '%jwp-test/%'

显示306结果。 只是不要弄到我错的地方。 任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

REPLACE()不支持通配符搜索(%),因此您需要使用REGEXP_REPLACE()(MySQL 8.0)或更复杂的SQL语句。

假设你不想用NULL替换这个值,这样的东西应该可以工作:

UPDATE `wp_postmeta`
SET `meta_value` =  CONCAT( 
        SUBSTR( `meta_value`, 1, LOCATE( 'jwp-test/', `meta_value` ) -1 ), 
        SUBSTR( `meta_value`, LOCATE( 'jwp-test/', `meta_value` ) +9 ) 
        )
WHERE `meta_value` LIKE '%jwp-test/%'

答案 1 :(得分:0)

上床思考,阅读上面的评论,这很有效:

'author_email' =>  $curauth->user_email,

所以是的,它删除了替换的通配符,但将它们留在了哪里。

相关问题