Mysql 如果条目存在

标签 mysql

是否可以使用 mysql 检查记录是否存在?

rowName | number
----------------
dog     | 1
cat     | 2

例如:

如果我有一个变量 $var = 'dog',它已经存在于我的数据库中,我希望系统将 +1 数字添加到 dog 行。

另一方面,例如,当我有变量 $var='fish' 时,它在我的数据库中不存在,我希望系统插入新行 '鱼” 编号为 1。

我想知道是否有一种查询可以替代使用 php 条件的两个不同查询。我假设只运行一个 mysql 查询会更快。

最佳答案

请看这个INSERT ... ON DUPLICATE KEY UPDATE .例如

INSERT INTO table (rowName, `number`) VALUES ('$var', 1)
  ON DUPLICATE KEY UPDATE `number` = `number` + 1;

关于Mysql 如果条目存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024396/

相关文章:

mysql - 如何更改 MySQL 上的存储引擎类型?

php - 检索数据时如何保留空格

mysql - 萨基拉错误 1044 (42000) 在第 46412 行 : Access denied for user 'ted' @'localhost' to database 'sakila'

mysql - 连接并设置两个表

MySQL 查询帮助 - 对同一个表的多个查询

php - MySQL 按 DESC 排序结果记录中的差距。没有 Missing record w/sort ASC?

php - PDO 数据库抽象层,在一个请求中具有多个查询

php - json 到 mysql 停止工作

mysql - Django 查询两次返回相同的对象

mysql - 从源代码编译 mariadb/mysql 时删除未使用的命令行工具