MySQL更新内容(如果存在)

时间:2016-04-12 15:57:30

标签: mysql database

好的,所以我知道有一些类似的问题,但我如何在MySQL中更新这样的表:

+----+----------+---------+-------------------------+
| id | username | subject | content                 |
+----+----------+---------+-------------------------+
| 1  | Fred     | English | Lorem Ipsum             |
+----+----------+---------+-------------------------+

所以,我想说,我想更新用户英语书中的内容,但是,如果它不在那里,我想插入它,然后在将来更新它。

2 个答案:

答案 0 :(得分:0)

如果一个用户只能在一个主题上有一本书,则应在(username, subject)上创建一个唯一索引并使用此查询:

INSERT
INTO    mytable (username, subject, content)
VALUES  (:username, :subject, :content)
ON DUPLICATE KEY
UPDATE  content = VALUES(content)

答案 1 :(得分:0)

首先,您必须在要唯一的列上创建唯一索引。然后查询就是这样:

INSERT INTO `tableName` (`username`, `subject`, `content`)
VALUES ('[value 1]', '[value 2]', '[value 3]')
ON DUPLICATE KEY UPDATE `username` = '[value 1]', `subject` = '[value 2]', `content` = '[value 3]';