我有一个表,上面有数据,学生记录。我已经在使用带有一些添加数据的表,但记录大约是总数的一半。现在我已经获得了完整的记录,我想将其添加到我现有的表中。我希望 INSERT 排除表中已存在的记录以避免重复,但新表的整个记录会插入到我自己的表中,从而创建重复项。
INSERT INTO `studentTable`(`studentID`, `surname`, `first_name`, `middle_name`,
`department`, `room_number`)
SELECT `studentID`, `surname`, `first_name`, `middle_name`, `department`,
`room_number`
FROM newTable WHERE EXISTS
(SELECT * FROM studentTable WHERE studentTable.studentID <> newTable.studentID);
注意:我可以轻松删除旧记录并插入新记录,但这会很痛苦,因为现有记录已经与一些添加的数据一起使用。
任何帮助将不胜感激。深深地。
最佳答案
假设studentID
上有主键(如果没有,则创建一个),只需执行INSERT IGNORE
,mysql就会为您进行过滤。
INSERT IGNORE INTO `studentTable`
(`studentID`, `surname`, `first_name`, `middle_name`, `department`, `room_number`)
SELECT
`studentID`, `surname`, `first_name`, `middle_name`, `department`, `room_number`
FROM `newTable`;
关于mysql - 插入到条件在 MySQL 中不起作用的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186585/