我试图更新 meta值为我的所有职位在WordPress数据库中符合一定的条件。
我创建了一个名为update_with_false
的表,其中每一行“值”都与wp_posts
表中的一个帖子的post_name
相匹配。
我需要做的是,对于wp_posts
表中与update_with_false表中的行具有相同帖子名称的每个帖子,将meta_key
“included_in_related_articles”的meta_value
更改为“true”。
下面是我的SQL语句,但出现语法错误:
UPDATE SET wp_postmeta (post_id, meta_key, meta_value)
select ID, 'included_in_related_articles', 'true' from wp_posts
WHERE update_with_false.value = wp_posts.post_name
我已经附上了一些需要更新的 meta字段和我创建的额外表的截图
谢谢你!
第一次
2条答案
按热度按时间wljmcqd81#
如果我没理解错的话,您希望更新 wp_postmeta.meta_value 并将其设置为true(如果 wp_posts.post_name 中的值在 update_with_false.value 中找到)。
您可以先将 wp_posts.post_name 列联接到 wp_postmeta 表,然后通过进一步联接 update_with_false 表来限制联接的帖子,从而实现此目的。
我在脑海中写下了这句话(借助ER diagram):
jfewjypa2#
可以使用子查询完成,如下所示:
其中
SELECT ID FROM wp_posts AS wps LEFT JOIN update_with_false AS uwf on (wps.post_name = uwf.value)
是子查询,将给予wp_posts表中以逗号分隔的ID。