如果表中不存在员工 ID,我想在单个表中为多个员工添加多条记录。我有数组中的员工 ID。
Array ( [0] => Array ( [EmployeeID] => 1 ) [1] => Array ( [EmployeeID] => 2 ) )
现在我有一个表,我想在其中检查是否存在员工的记录然后不插入如果某些员工的记录不存在然后进行插入。
e-g 我有 table 。
INSERT INTO timesheet (employee_id,date_created) Values (1,2014-12-20),(2,2014-12-20) where employee_id NOT IN (1,2)
我知道我写的上述查询是不正确的,但这就是为什么我想问如何仅在该特定 ID 的记录不存在时才插入到表中。
我正在使用 codeigniter
,如果您也知道 codeigniter
的方式,那就太好了。但是简单的 mysql
查询帮助也可以为我工作。
最佳答案
尝试使用NOT EXIST像这样的子句:
INSERT INTO timesheet (employee_id,date_created)
select 1,'2014-12-20'
from dual
WHERE NOT EXISTS (
SELECT *
FROM timesheet
WHERE employee_id in (1)
);
对于多行,您必须如下添加虚拟行(或者只在循环中执行之前的语句)
INSERT INTO timesheet (employee_id,date_created)
select * from (
select 1 AS ID,'2014-12-20'
union all
select 2 AS ID, '2014-12-20'
union all
select 3 AS ID, '2014-12-20'
) t
WHERE NOT EXISTS (
SELECT *
FROM timesheet
WHERE employee_id = t.ID
);
感谢Spock更正! :)
关于php - 如果表中不存在ID,则在表中插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578262/