更新MySQL表中的字段(如果它为空)

时间:2013-03-19 21:07:54

标签: c# mysql sql

我在C#中有以下SQL查询

REPLACE INTO users(uid, username, firstseen, ...)
VALUES(@uid, @username, @firstseen, ...)

我希望更新用户记录,但除了第一次看到此用户之外,我不想先改变。我可以查询数据库,但这会增加很多开销是否有更好的方法呢?

1 个答案:

答案 0 :(得分:3)

REPLACE INTO会占用现有的任何数据,相当于DELETE后跟INSERT语句。

您可能想要的是:

INSERT IGNORE INTO users (uid, username, screenname, ...)
  VALUES (@...)
  ON DUPLICATE KEY UPDATE uid=VALUES(uid), username=VALUES(username), ...

您可以根据需要在ON DUPLICATE KEY部分中指定特定字段,省略明显相同的字段。