mysql插入替换_MySQL插入或替换

我想创建一个系统来跟踪游戏中玩家的进度。每个玩家可以是多个组的成员,这些组都有其他要求。为了追踪他的进步,一旦他加入队伍,球员的统计数据将被保存。每次他重新加载他的统计数据时,现在的数据都应该保存在数据库中。MySQL插入或替换

播放器的所有属性都以json格式存储,然后由PHP或JS进行解析。一旦玩家加入一个组,就会设置比较= 0的条目。比较= 1的条目应该在玩家第一次点击时创建更新统计信息并且从此只应更新,而不是新创建。

现在我的问题是:如何做到这一点?当通过INSERT INTO的语法阅读我有以下几点:

INSERT INTO `groups` (`grp`, `id`, `json`, `compare`) VALUES

($grp, $id, $json, 1) ON DUPLICATE KEY SET `json` = $json

然而,由于没有按键,我不知道我是否能建立两/三键(因为可能有多个每个用户的组,以及同一组中的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是一个布尔值。 0代表入场数据(他注册时球员已经拥有的积分数量),1代表当前数据 - 将 与入场数据进行比较,以获得差异(=积分 玩家自加入集团以来)。

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

2013-11-23

Padarom

+0

是什么原因,你不只是有两列:initialstats和currentstats? –

+0

如果它不是该表的真实ID,则不会调用列标识。将其称为user_id/player_id –

+0

@RiccardoGalli我的数据库中的列命名有所不同,为了易于理解,我重新命名了它们。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值