0

有没有办法在 MySQL 中使用 UPDATE 完成单表扫描?以下是一个标准示例:

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)

这是我希望在 MySQL 中发生的理想情况(但这是 MsSQL):

UPDATE user SET (name = 'jesse') WHERE userid ='10001'
IF @@ROWCOUNT=0
    INSERT INTO user (name) VALUES('jeeeeee')
4

1 回答 1

2

它在 MySQL 中有点相反。您执行插入,如果键已经存在,则更新该行:

INSERT INTO Table1 (col1,col2,col3) VALUES (val1,val2,val3)
ON DUPLICATE KEY UPDATE col1 = val1, col2 = val2, col3 = val3;

这取决于您拥有表的唯一键(您这样做,对吗?)

于 2012-05-27T03:54:49.477 回答