代码之家  ›  专栏  ›  技术社区  ›  Nicholas Koskowski

删除重复的用户元

  •  0
  • Nicholas Koskowski  · 技术社区  · 7 年前

    我有一个标准的WP\u 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 回复  |  直到 7 年前
        1
  •  2
  •   Gordon Linoff    7 年前

    您可以这样做:

    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;