mysql - 如何为 If Exists Update Else Insert 编写 MySQL 查询?

标签 mysql

我尝试在一个查询中编写 MySQL 插入和更新查询,但似乎不起作用,有人可以解释一下以下代码的错误是什么,谢谢。

IF EXISTS 
    (
        SELECT * 
        FROM contact 
        WHERE account_id='".$_GET['acc']."' AND contact_id='".$_GET['con']."'
    )
    UPDATE contact SET 
    category='".$_GET['cat']."',  shares='".$_GET['sh']."'
    WHERE account_id='".$_GET['acc']."' AND contact_id='".$_GET['con']."'
ELSE
    INSERT INTO contact 
    (account_id,contact_id, category, shares)
    VALUES ('".$_GET['acc']."', '".$_GET['con']."', '".$_GET['cat']."', '".$_GET['sh']."')

最佳答案

REPLACE 的工作方式与 INSERT 完全相同,只不过如果表中的旧行与 PRIMARY KEY 或 UNIQUE 索引的新行具有相同的值,则在插入新行之前会删除旧行。

See REPLACE syntax

关于mysql - 如何为 If Exists Update Else Insert 编写 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665411/

相关文章:

c# - 更新表中一行的正确 sql 是什么?

mysql - Laravel 查询生成器仅限制表中的行,即使在联接中这些行必须出现多次

MySQL : combining multiple integer fields into one string field?

php - Codeigniter 新手 : Count query results?

mysql - 为 drupal 站点实现 "sign in with slack"按钮

PHP MySQL 小查询超时,必须将限制设置为 10

MySQL 查询对我来说太复杂了

php - 更新和插入 mysqli 表

python - MySQLdb.cursor.execute 无法运行多个查询

PHP 查询不从新 SQL 列返回数据 (MAMP)