【问题标题】:INSERT SELECT query when one column is unique当一列唯一时插入 SELECT 查询
【发布时间】:2012-07-23 19:35:05
【问题描述】:

我需要调用 INSERT + SELECT 将用户数据导入不同的表,我需要过滤 user_name 重复,所以我需要这样的东西:

INSERT INTO new_table SELECT email, distinct user_name, password from old_table

但 distinct 仅在使用 distinct email, user_name, password 时有效,并且所有这些列都必须是唯一的。

有没有其他方法可以插入带有 uniq 用户名的选择,(我只需要第一行 - 具有较低的 id)?

编辑我忘了说我用的是mysql

【问题讨论】:

    标签: mysql database insert duplication insert-select


    【解决方案1】:

    如果不进行测试,我希望这样的事情可以解决问题(假设 id 列名为 id)

    INSERT INTO new_table 
        SELECT email, user_name, password 
        FROM old_table 
        INNER JOIN 
            ( SELECT MIN(id) FROM old_table GROUP by user_name ) minids
        ON minids.id = old_table.id
    

    【讨论】:

    • 它可以工作,但需要添加MIN(userid) as userid(我的ID是用户ID)
    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多