mysql - 插入到条件在 MySQL 中不起作用的表中

标签 mysql

我有一个表,上面有数据,学生记录。我已经在使用带有一些添加数据的表,但记录大约是总数的一半。现在我已经获得了完整的记录,我想将其添加到我现有的表中。我希望 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/

相关文章:

php - 如何使用 Laravel 5.1 执行原始查询?

mysql - 是否可以在 mysql 子查询中使用 IF?

php - CakePHP 3 - 数据库表与自身的关联

mysql - 如何使用 SQL 查询访问 JSON 对象列表或数组中的字段

php - Magento - 重建索引过程存在问题 - 目录产品

php mysql - 搜索字段和类别(如果不为空)

mysql - 您好,我已经编写了以下 mysql 查询,但它占用了我太多的 cpu。我该如何优化它

来自 SSH 的 MYSQL 用户设置权限主机

php - 表单数据在第二个 POST 中被覆盖?

android - Sql select 查询创建具有位置值的排行榜