php - 如果记录相同则更新 SQL 行

标签 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

I use a sql query (written in PHP) which will insert a value like this -

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

它工作正常。但如果所有三个“Project_ID”、“Field_ID”和“Record_ID”都相同,我需要更新“标签”——如果有任何一个不同,则作为新记录插入。

从记录结构中可以明显看出,Unique/Primary 不是此处的选项。

最佳答案

为什么唯一性不是一个选项?只需同时为这三个字段创建它即可。

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

关于php - 如果记录相同则更新 SQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19012922/

相关文章:

mysql - 需要创建 MySQL 过程以根据条件从表中获取数据并将它们插入到另一个表中

MySQL 将时间戳添加到插入的值

php - xampp mysql 用户只能在没有密码的情况下工作

java - JDBC 多线程插入是否可行?

MySQL ON DUPLICATE KEY UPDATE 仅插入,不更新

ios - 在 Parse iOS 中更新保存的数据

php - 客户端即时视频生成

php - 如何手动将时间戳值调整为上一年?

PHP 干预图像调整图像大小以适应最短边长宽比

php - 使用PDO连接方式