2012-12-31 96 views
0

我试图做这样的事情里面存储过程的:MySQL的REPLACE INTO和可选值IFNULL

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

但不是似乎工作,任何想法如何做到这一点?

谢谢!

回答

1

REPLACE INTO语法的工作方式与INSERT INTO完全相同,只是在插入新行之前自动删除具有相同主键或唯一键的所有旧行。

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

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

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

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

我不知道,谢谢您的光临 – Santiago

+0

,好运与休息。 –