删除重复的用户元

时间:2018-05-11 20:18:47

标签: mysql sql duplicates

我有一个标准的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”只影响单列值...我正在绞尽脑汁。

1 个答案:

答案 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;