我有复杂的SELECT请求:
select meta_value
from wp_posts v
left join wp_postmeta pm on (pm.post_id = v.id)
left join wp_posts p on (v.post_parent = p.id)
where meta_key in ('_price','_regular_price')
and v.post_type = 'product_variation'
and p.id = '1743'
limit 0,100
它返回了我需要的4个字段,其值为
400
500
300
350
我需要更新这些值并将它们的值设置为相等,例如1000
。
我可以根据SELECT
运行UPDATE
查询吗?
答案 0 :(得分:0)
Select
查询中使用的任何条件都可以在Update
查询中使用,当然可能需要稍加修改。你可以做的是以下几点:
meta_value
Update wp_posts
set meta_value = 1000
where id IN (select v.id
from wp_posts v
left join wp_postmeta pm on (pm.post_id = v.id)
left join wp_posts p on (v.post_parent = p.id)
where v.meta_key in ('_price','_regular_price')
and v.post_type = 'product_variation'
and p.id = '1743')
请注意我没有测试过,所以我不确定它是否会起作用。确保在任何此类查询之前备份您的数据库。希望它会给你想要的结果。
修改:我假设id
中的wp_posts
是唯一值。