我想更新可能存在或不存在于表中的记录。如果它不存在于数据库中,那么它将被插入。
为了防止选择,我UPDATE
首先使用语句并检查affected_rows > 0
是否没有,然后我将此记录插入表中。
我想知道是否有更好的方法来做到这一点?
我想更新可能存在或不存在于表中的记录。如果它不存在于数据库中,那么它将被插入。
为了防止选择,我UPDATE
首先使用语句并检查affected_rows > 0
是否没有,然后我将此记录插入表中。
我想知道是否有更好的方法来做到这一点?
你可以使用INSERT ... ON DUPLICATE KEY UPDATE
语法:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html
这与REPLACE
(Femaref 的答案)之间的区别在于,如果键重复,REPLACE
它将删除旧行,然后插入新行,而这将更新现有行。
使用Replace
而不是Insert
.