使用带有Andomar答案的子查询。使用带有update和delete语句的连接并不好。
应该是这样的
UPDATE wp_postmeta m SET m.meta_value = (SELECT p.ID FROM wp_posts p, articles a
WHERE m.post_id=p.ID AND m.post_id = a.id AND a.image IS NOT NULL
AND p.post_type='attachment' AND p.post_name=a.image)
WHERE m.meta_key='_thumbnail_id'备份第一!我没试过这个。
如果不起作用,请尝试执行选择查询,如果可以选择它们。如果它没有选择(也可能不会),请检查与您的设计相对应的查询结构。
SELECT m.meta_value, (SELECT p.ID FROM wp_posts p, articles a
WHERE m.post_id=p.ID AND m.post_id = a.id AND a.image IS NOT NULL
AND p.post_type='attachment' AND p.post_name=a.image) AS pID
FROM wp_postmeta m
WHERE m.meta_key='_thumbnail_id'也可以尝试第一个查询
SELECT m.meta_value, p.ID AS pID FROM wp_postmeta m
INNER JOIN articles a on (m.post_id = a.id)
INNER JOIN wp_posts p on (m.post_id = p.ID)
WHERE p.post_name=a.image
AND a.image IS NOT NULL
AND p.post_type='attachment'
AND m.meta_key='_thumbnail_id'尝试使用/修改选择查询以找出问题。