我有一台台式电脑,其中包含以下列:
node_modules
我正在尝试创建一个mysql语句,如果computer(computer_id(pk), office_id, computer_name, login, date, time)
和office_id
已经存在,将更新一行,如果不存在则会插入新行。如果computer_name
不同但office_id
已经存在,我仍想插入新行,反之亦然。如果有人可以给我一些建议。我非常感激。
答案 0 :(得分:0)
您可以使用mysql的on duplicate key update
功能来完成此任务。
假设您对(computer_name, office_id)
有唯一约束,则以下查询将在新的(computer_name, office_id)
对中插入新行,否则更新现有行:
insert into computer (office_id, computer_name, login, `date`, `time`) values
(..., ..., ..., ..., ...)
on duplicate key update login = values(login), `date` = values(`date`);
^^^^^^^^^^^^^^^^^^^^^ here is how you specify which values to update
答案 1 :(得分:-1)
尝试将UNIQUE office_id和computer_name添加到表格中。
之后......
//INSERT statement
$stmt = "INSERT IGNORE INTO table";
if ($conn->query($stmt) === false) {
die("Database error:".$conn->error);
}
// Check for success
if (affected_rows == 0) {
UPDATE TABLE
} else {
//Success and return new id
INSERT IN TO TABLE
}