2012-05-27 52 views
0

有沒有辦法在UPDATE中完成MySQL中的單個表掃描? 下面是一個標準的例子:MySQL單表掃描更新

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') 

回答

2

它在某種逆轉MySQL的。您執行插入,並且如果鍵已經存在,則更新該行:

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

這個的前提是你有對錶的唯一密鑰(你做什麼,對不對?)