我有复杂的 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
查询吗?
最佳答案
Select
查询中使用的任何条件都可以在 Update
查询中使用,当然它可能需要一些修改。针对您的情况,您可以执行以下操作:
元值
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')
请注意,我没有测试过这个,所以我不完全确定它会起作用。确保在任何此类查询之前备份数据库。希望它能给您带来想要的结果。
编辑:我假设 wp_posts
中的 id
是一个唯一值。
关于mysql - 从复杂的 Select 中更新 MySql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44822319/