MySQL 更新内容(如果存在)

标签 mysql database

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

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

所以可以说,我想更新用户英语书中的内容,但是,如果其中还没有,我想将其插入,然后在将来更新它。

最佳答案

如果一个用户只能拥有一本关于某个主题的书,您应该在(用户名,主题) 上创建一个唯一索引并使用以下查询:

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

关于MySQL 更新内容(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578420/

相关文章:

mysql - 未知的内部查询错误

php - 如何只检索 1 行而不是 2 行?

MySql SQL_NO_CACHE 5.0 和 5.5 之间的问题

mysql - 我如何在 INFORMATION_SCHEMA.TABLES 和其他表之间建立关系

mysql - MySQL 回滚失败

Mysql 等于 vs 大于(小于)性能差异

mysql - 如果table1中的table2 id不为空,如何连接到table2

sql - 使用字符串输入在表中插入多个值

java - 网络 javaSE 应用程序

java - 使用日期和时间创建日期时间