1

如何根据另一个字段的值在 MySQL 中查找和替换?例如,

我想用“126810”替换“post_parent”列中的所有“0”值......但前提是这些条目在“post_type”字段中也有“topic”值。

我认为它会是这样的,但它似乎不起作用,语法问题和所有:

update wp_posts set post_parent = replace(post_parent,`0`,`126810`) 
WHERE `post_type` LIKE 'topic');

我还猜想,即使我可以让它工作,我也会用 1126810、2126810 等替换所有 10、20、30 等的 post_parent 值。

有人碰巧知道我如何解决这两个问题吗?

4

2 回答 2

0

您应该能够扩展您的WHERE条款:

update wp_posts 
set post_parent = replace(post_parent,0,126810)
WHERE post_type = 'topic'
  AND post_parent = 0;

请参阅带有演示的 SQL Fiddle

于 2012-12-19T23:42:15.547 回答
0

也许acase when会帮助你。

update wp_posts 
set post_parent = 
case when (`post_type` LIKE 'topic'
and post_parent = `0`)
then
replace(post_parent,`0`,`126810`)
end

;

于 2012-12-19T23:47:18.697 回答