我正在尝试在存储过程中执行类似的操作:
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/