mysql - 当一列唯一时插入 SELECT 查询

标签 mysql database insert duplication insert-select

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

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

但仅在使用不同的电子邮件、用户名、密码时才有效,并且所有这些列都必须是唯一的。

是否有其他方法可以使用 uniq user_names 插入选择(我只需要第一行 - 具有较低的 id)?

编辑我忘了提及我使用mysql

最佳答案

如果没有测试,我会期望这样的东西可以达到目的(假设 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

关于mysql - 当一列唯一时插入 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11648568/

相关文章:

php - Yii:使用 GROUP BY 子句

mysql - 插入表强制新主键

MySQL 聚合行结果计数

mysql将列值约束为预设值

php - 使用 concat 的 pdo 更新语句不起作用

PHP MySQL - 如何在准备好的语句中插入默认值

iphone - iphone编程如何向sqlite数据库插入多行数据

mysql - 为给定字符串搜索数据库的好算法

php - CakePHP数据库设计: associations for job board

sql - 如何在 SQL 中四舍五入