【发布时间】:2019-06-17 23:54:39
【问题描述】:
如果“用户”已经存在,我不知道如何替换一些数据。
我已经尝试过ON DUPLICATE KEY UPDATE,但我意识到这可能行不通。因为在我的代码中唯一没有更新的值是“用户”,但其他 3 个值每 5 分钟不断更新。
INSERT INTO online ( `user`, `bot`, `world`, `status` ) VALUES ('$User', '$Name', '$World', '$status')
ON DUPLICATE KEY UPDATE bot = VALUES ('$Name'), world = VALUES ('$World'), status = VALUES ('$status')
这个想法是,例如,如果用户“bob”已经存在,则更新他的其他 3 个值bot、world、status,而不是创建新行等等。
编辑:这就是我在Mysql 中设置的方式
【问题讨论】:
-
如果主键是
user,这将按你的意愿工作。另外,只要看看你的代码,你可能想熟悉一下SQL injection -
@Bohemian 是的,我已经用主键搜索过,但作为一个文本,我似乎无法将其设为主要嗯编辑:只是注意到我可以将其更改为 varchar,然后将其设为初级
-
使用
VARCHAR(30)或一些合理的长度而不是文本。