CREATE TEMPORARY TABLE temp_table AS (
SELECT wp_postmeta.post_id,
wp_postmeta.meta_value AS sale_price,
pm1.meta_value AS regular_price,
pm2.meta_value AS price
FROM wp_postmeta
LEFT JOIN wp_postmeta pm1 ON pm1.post_id = wp_postmeta.post_id AND pm1.meta_key = '_regular_price'
LEFT JOIN wp_postmeta pm2 ON pm2.post_id = wp_postmeta.post_id AND pm2.meta_key = '_price'
WHERE wp_postmeta.meta_key = '_sale_price' AND wp_postmeta.meta_value IS NOT NULL AND wp_postmeta.meta_value <> ''
);
UPDATE wp_postmeta pm1
INNER JOIN temp_table pm2 ON pm1.post_id = pm2.post_id
SET pm1.meta_value = pm2.sale_price
WHERE pm1.meta_key = '_price'
AND pm2.price <> pm2.sale_price
-- AND pm1.post_id IN (5610)
;
DROP TEMPORARY TABLE temp_table;
-- select * from temp_table where price <> sale_price;
Comments