gpt4 book ai didi

mysql - WordPress 根据条件更新自定义字段

转载 作者:行者123 更新时间:2023-11-29 21:53:37 27 4
gpt4 key购买 nike

仅当另一个自定义字段具有规定的条件,并且仅当自定义字段“shop”为“Amazon”时,我才想更新(更改)自定义字段( Logo )值。我有这个查询

UPDATE `wp_postmeta` SET `meta_key`="logo",`meta_value`="http://www.mywebsite.com/wp-content/uploads/logo-amazon.png" WHERE `meta_key` LIKE 'shop' AND `meta_value` LIKE 'Amazon'

但它不起作用,它在表中添加了一个新行(我不知道如果我说更新...)。能否请你帮忙?提前致谢

最佳答案

您的查询中的逻辑是错误的:您正在尝试更改存储商店值的元的键和值。

你想做的是这样的:

UPDATE
`wp_postmeta` p1
INNER JOIN `wp_postmeta` p2
ON p1.post_id = p2.post_id
SET
p2.meta_value="http://www.mywebsite.com/wp-content/uploads/logo-amazon.png"
WHERE
p2.meta_key LIKE 'shop' AND p2.meta_value LIKE 'Amazon' AND
p1.meta_key = "logo"

它将在更新上进行内部联接,以将元 shop 设置为 Amazon 的帖子 ID 获取到 p2 中,并且更新 p1 中具有元键 logo 的所有元。

尽管考虑到您使用的是 Wordpress,但您可以通过更简单的方法来完成此操作:

$posts = get_posts(array(
'meta_query' => array(
array(
'key' => 'shop',
'value' => 'Amazon',
)
)
));
foreach($posts as $post) {
update_post_meta($post->ID, 'logo', 'http://www.mywebsite.com/wp-content/uploads/logo-amazon.png');
}

关于mysql - WordPress 根据条件更新自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com