Mysql 如果表中存在两列,则更新表;如果两列之一不同,则插入
我有一台台式计算机,它有以下列: 计算机idpk、办公室id、计算机名称、登录名、日期、时间 我正在尝试创建一个mysql语句,如果office_id和computer_name已经存在,它将更新一行,如果它不存在,它将插入一个新行。如果办公室id不同,但计算机名称已存在,我仍希望插入新行,反之亦然。如果有人能给我一些建议。非常感谢。您可以使用mysql的on duplicate key update功能来完成这项工作 假设您对计算机名称、办公室id有唯一的约束,以下查询将在中插入新行,以获得新的计算机名称、办公室id对,否则将更新现有行:Mysql 如果表中存在两列,则更新表;如果两列之一不同,则插入,mysql,insert,Mysql,Insert,我有一台台式计算机,它有以下列: 计算机idpk、办公室id、计算机名称、登录名、日期、时间 我正在尝试创建一个mysql语句,如果office_id和computer_name已经存在,它将更新一行,如果它不存在,它将插入一个新行。如果办公室id不同,但计算机名称已存在,我仍希望插入新行,反之亦然。如果有人能给我一些建议。非常感谢。您可以使用mysql的on duplicate key update功能来完成这项工作 假设您对计算机名称、办公室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
您可以使用mysql的on duplicate key update功能来实现这一点
假设您对计算机名称、办公室id有唯一的约束,以下查询将在中插入新行,以获得新的计算机名称、办公室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
尝试将唯一的办公室id和计算机名称添加到表中 在那之后
//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
}
尝试将唯一的办公室id和计算机名称添加到表中 在那之后
//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
}
@齐林。。“我只是想帮忙,你不必给我否决票。”冷静点.“。。我只是想帮忙,你不需要给我否决票。