Версия сервера базы данных: Версия сервера: 10.1.37-MariaDB - двоичный дистрибутив mariadb.org
Ошибка:
1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования
near '(разделение по порядку post_title по wp_postmeta.meta_value) rn
' в строке 8
Запрос:
-- Deleting all duplicate products in wp_posts table
DELETE FROM
wp_posts WHERE ID IN ( SELECT ID FROM
(
select ID,post_title,post_type,meta_value from
(SELECT wp_postmeta.post_id,post_title,post_type ,meta_value,
row_number()over(partition by post_title order by wp_postmeta.meta_value) rn
FROM wp_postmeta
JOIN wp_posts ON wp_postmeta.post_id = wp_posts.id
WHERE wp_posts.post_type = 'Product'
AND wp_postmeta.meta_key = '_regular_price'
) t where t.rn <> 1
) AS aliasx
);
-- Deleting all corresponding wp_postmeta.post_ids that don't have a match in wp_posts.id after the duplicate deletion above
DELETE FROM wp_postmeta WHERE post_id IN (select post_id from (
SELECT pm.post_id
FROM
wp_postmeta pm
LEFT JOIN
wp_posts p
ON p.id = pm.post_id
WHERE
p.id IS NULL
AND
p.post_type = "Product"
) AS aliasy );
Может ли кто-нибудь предложить простое исправление кода, обеспечивающее совместимость с версией базы данных, 10.1.37-MariaDB?
db Fiddle здесь