mysql REPLACE INTO 和可选值 IFNULL

标签 mysql replace ifnull optional-values

我正在尝试在存储过程中执行类似的操作:

REPLACE INTO mytable
SET myid = `IDvalue`, mytitle = `sMyTitle`, myoptionalvalue = IFNULL(`sMyOptValue`, myoptionalvalue);

但似乎不起作用,知道如何做到这一点吗?

谢谢!

最佳答案

REPLACE INTO 语法的工作原理与 INSERT INTO 完全相同,只不过在插入新行之前会自动删除具有相同主键或唯一键的任何旧行。

这意味着您应该将主键添加到要替换的值以限制更新,而不是使用 WHERE 子句。

REPLACE INTO myTable (
 myPrimaryKey,
 myColumn1,
 myColumn2
  ) VALUES (
 100,
 'value1',
 'value2'
 );

...将提供与...相同的结果

UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;

关于mysql REPLACE INTO 和可选值 IFNULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103244/

相关文章:

mysql - 如何在 Rails 中排序之前通过公共(public)属性对值求和

string - 将 NSAttributedString 的子字符串替换为另一个 NSAttributedString

python-3.x - 如何用一个字符替换字符串中的所有字符

mysql - 空时连接 (mysql)

mysql - GROUP 结果值如果为空

mysql - MySql 中某行的计算值为空时的情况

MySQL 从多个表中删除

mysql - 变量未在 mysql sp 内设置

mysql - 选择其中 id == value 且 id != value mysql

javascript - 如何在 Firefox 扩展中替换多个单词