2016-03-08 5 views
0

Мне нужно удалить дубликаты meta_values ​​из таблицы, где дублирующиеся значения имеют один и тот же post_id. Импорт поступил неправильно, и существует несколько сотен тысяч строк с большим количеством повторяющихся значений.Удалить сообщение Meta с повторяющимися значениями

Итак, в приведенном ниже примере есть две строки с post_id 12 и meta_value из 6, когда их должно быть только одно.

meta_id post_id meta_key    meta_value 
------- ------- --------    ---------- 
1   12   attribute_pa_length 6 
2   12   attribute_pa_length 6 
3   12   attribute_pa_length 9 
4   35   attribute_pa_length 8 
5   35   attribute_pa_length 12 
+0

что вы хотите удалить 'meta_id = 1' или' meta_id = 2' ?? –

ответ

0

Это оставит вас с меньшим meta_id

DELETE T1 
FROM YourTable T1, YourTable T2 
WHERE T1.post_id = T2.post_id 
    AND T1.meta_value = T2.meta_value 
    AND T1.meta_id > T2.meta_id  
+0

Спасибо, просто ответ, который я искал! – Bijingus

+0

Просто помните, если вы хотите сохранить самый большой 'meta_id' просто изменить'> для <' –

Смежные вопросы