我有一个标准的WP_Usermeta表...它一直在复制我的用户信息。我已经修复了继续这样做但我现在需要清理操作。
对于没有经验的人,他们被组织成以下列:
umeta_id, user_id, meta_key, meta_value
我的重复行看起来像:
2777, 1088#, billing_city, san diego
2778, 1088#, billing_city, san diego
2897, 1088#, first_name, Joe
2898, 1088#, first_name, Joe
如何编写查询以删除副本,但首先要知道“DISTINCT”只影响单列值...我正在绞尽脑汁。
答案 0 :(得分:1)
您可以这样做:
delete um
from WP_Usermeta um join
(select user_id, meta_key, meta_value, min(umeta_id) as min_umeta_id
from WP_Usermeta
group by user_id, meta_key, meta_value
) umd
on umd.user_id = um.user_id and umd.meta_key = um.meta_key and
umd.meta_value = um.meta_value and um.umeta_id > umd.min_umeta_id;