我有一个包含这些字段的表格:
meta_id | post_id | meta_key | meta_value
这实际上是一个WordPress postmeta 表。
有些帖子有 postmeta 条目,其中meta_key为_price
。我需要的是循环使用表格,插入另一行,使用meta_key = _regular_price
,同样的post_id和相同的meta_value。
因此,我检查是否存在具有该meta_key的 postmeta 条目,并添加另一个具有不同meta_key的条目。听起来很简单,但我该如何实现呢?
答案 0 :(得分:1)
此查询将为具有meta_key ='_ price'的所有帖子插入包含现有post_id的新行和meta_key值'_regular_price'。 meta_id和meta_value列将为null或其默认值(如果存在任何默认约束)。
insert postmeta (post_id, meta_key)
select post_id, '_regular_price' from postmeta p1
where exists (select 1 from postmeta where meta_key = '_price' and p1.post_id = post_id)
如果您打算多次运行它,可能需要添加一个条件,检查是否存在'_regular_price'meta_key:
and not exists (select 1 from postmeta where meta_key = '_regular_price' and p1.post_id = post_id)