如果 table 中存在两列,则更新 table,如果两列之一不同,则插入

Update table if two columns exist in table and insert if one of the two columns are different

我有一台 table 电脑,它有以下列:

computer(computer_id(pk), office_id, computer_name, login, date, time)

我正在尝试创建一个 mysql 语句,如果 office_idcomputer_name 已经存在,它将更新一行,如果不存在,将插入一个新行。如果 office_id 不同但 computer_name 已经存在,我仍想插入一个新行,反之亦然。如果有人可以给我一些建议。非常感谢。

您可以使用 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

see it in action here

尝试将 UNIQUE office_id 和 computer_name 添加到 Table。

在那之后....

//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
    }