gpt4 book ai didi

php - MySQL 插入或替换

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:48 24 4
gpt4 key购买 nike

我想创建一个系统来跟踪玩家在游戏中的进度。每个玩家可以是多个组的成员,这些组都有其他要求。为了跟踪他的进度,一旦他加入一个组,玩家的统计数据就会被保存。每次他重新加载他的统计数据时,当前的数据都应该保存在数据库中。

玩家的所有统计数据都以 json 格式存储,然后由 PHP 或 JS 解析。一旦玩家加入组,就会设置 compare = 0 的条目。 compare = 1 的条目应该在玩家第一次点击 Update Stats 时创建,从那时起它应该只被更新,而不是新创建。

现在我的问题是:如何实现?在阅读 INSERT INTO 的语法时,我得到以下信息:

INSERT INTO `groups` (`grp`, `id`, `json`, `compare`) VALUES 
($grp, $id, $json, 1) ON DUPLICATE KEY SET `json` = $json

但是,由于没有key set,不知道能不能设置2个/3个key(因为每个用户可以有多个组,以及同一个组中的compare = 0条目) ,我不认为我可以这样做。

+------+----+---------+---------+
| grp | id | json | compare |
+------+----+---------+---------+
| 1 | 1 | stats | 0 |
| 1 | 1 | stats | 1 |
| 1 | 2 | stats | 0 |
| 1 | 2 | stats | 1 |
| 2 | 2 | stats | 0 |
| 2 | 3 | stats | 0 |
| 2 | 3 | stats | 1 |
| 2 | 4 | stats | 0 |
| 2 | 5 | stats | 0 |
+------+----+---------+---------+

grp 是玩家所在的组。没有真正的限制设置 玩家可以加入的组数。

id是播放器的ID。

json 在 json 中包含玩家的统计数据 格式(点数等)。

compare 是一个 bool 值。 0代表入场统计(球员的积分数他注册时已经有了),1 代表当前统计数据 - 这将与条目统计数据进行比较,以获得差异(=点自加入该组以来制作的播放器)。

我希望我的解释是可以理解的,并且有人可以帮助我。

最佳答案

你可以使用 insert raplace:

REPLACE INTO groups (`grp`, `id`, `json`, `compare`) VALUES (...);

但是你必须在表中有主键。 Replace into 自动找出主键,如果记录存在,则更新行,如果不存在,则添加新行。

关于php - MySQL 插入或替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com