在我的WordPress数据库中,我正在执行这个更简化的查询的版本:
UPDATE wp_postmeta a
SET a.meta_value = 'roses'
WHERE a.meta_key = 'flowers' AND
EXISTS (SELECT *
FROM wp_postmeta b
WHERE a.post_id = b.post_id AND
b.meta_key = 'month' AND
b.meta_value = 'august')
我一直收到以下错误:
#1093 - You can't specify target table 'a' for update in FROM clause
我在处理数据库查询方面经验有限,无法理解如何修复查询。
非常感谢任何帮助。
更新#1:答案由@Rahul提供。
答案 0 :(得分:1)
执行以下UPDATE JOIN
。使用相同的表格执行SELF JOIN
。
UPDATE wp_postmeta a
JOIN wp_postmeta b ON a.post_id = b.post_id AND
b.meta_key = 'month' AND
b.meta_value = 'august'
SET a.meta_value = 'roses'
WHERE a.meta_key = 'flowers';