mysql - 如何将记录(一列中不同但保留其他字段中的数据)复制到新表并在 MySQL 中分配新 id

标签 mysql

例如,我这里有一张 table :

id, firstname, lastname, age, country
 1, john     , doe     , 40 , usa
 2, mary     , kay     , 30 , uk
 3, john     , doe     , 41 , usa
 4, peter    , pan     , 50 , australia

我想将具有不同(名字)和最新 id 的行复制到新表,但将数据保留在其他字段中,并重新分配 id,例如:

id, firstname, lastname, age, country
 1, mary     , kay     , 30 , uk
 2, john     , doe     , 41 , usa
 3, peter    , pan     , 50 , australia

请告诉我如何使用MySQL查询来做到这一点,谢谢!

最佳答案

您所需要的只是使用选择 MySQL INSERT-SELECT 进行插入

INSERT INTO new_table ( firstname, lastname, age, country ) 
    SELECT firstname, lastname, age, country 
    FROM old_table 
    GROUP BY old_table.firstname 
    ORDER BY old_table.id DESC

注意:对于此方法,您需要 new_table(id)自动增量字段

关于mysql - 如何将记录(一列中不同但保留其他字段中的数据)复制到新表并在 MySQL 中分配新 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983999/

相关文章:

sql - 在数据库中存储标签。存储标签一次还是多次?

mysql - 如何返回日期范围内的各个月份

c# - 部署使用 LINQ to Entities 的应用程序

mysql - 我应该在 MySQL InnoDB 表的 id 列上应用 PRIMARY 和 UNIQUE 索引吗?

php - SQL/PHP : Update result from select query

mysql - 使用 "join"和 "group by"避免子查询

mysqldump整个结构,但仅在单个命令中选择表中的数据

mysql - 尝试在 Windows 7 上启动 MySQL

php - Magento 和 Amazon RDS - 超时

mysql - 从两个表连接中获取前两条唯一记录 - Mysql