如果MySQL表中的字段为空,则更新该字段

本文关键字:字段 更新 如果 MySQL | 更新日期: 2023-09-27 18:04:50

我在c#中有以下SQL查询

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

我正在寻找更新用户记录,但我不想改变firstseen除了我第一次看到这个用户。我可以查询数据库,但这会增加很多开销有没有更好的方法?

如果MySQL表中的字段为空,则更新该字段

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部分指定特定的字段,省略那些明显相同的字段。