如果记录相同则更新SQL行

Pra*_*oon 2 php mysql insert-update

在MySQL中,我有一个这样的tblProjects -

Project_ID Field_ID     Record_ID Label
556895     1            1         Office desk 1
556895     1            2         Office desk 2
556895     2            1         This is a desk 1
556895     2            2         This is a desk 2
472246     1            1         Hello 1
472246     1            2         Hello 2
472246     2            1         This is a wooden desk 1
472246     2            2         This is a wooden desk 2

我使用sql查询(用PHP编写),它将插入一个这样的值 -

$sql_query = "INSERT INTO Items (Project_ID, Field_ID, Record_ID, Label) VALUES ('232323', '3', '3', 'New Label')";
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是如果所有三个'Project_ID','Field_ID'和'Record_ID'相同,我需要更新'Label',如果任何一个不同,我需要插入新记录.

从记录结构中可以明显看出,Unique/Primary不是一个选项.

Elo*_*han 5

为什么独特不是一种选择?只需将这三个字段一起创建即可.

然后你可以使用ON DUPLICATE KEY UPDATE语法.