user表:
用户ID 用户分数
uid numgame表:
ID 用户一 用户一ID 用户二 用户二ID 比赛分数 开始时间 结束时间
id user1 uid1 user2 uid2 gamenum begintime endtime
想实现的效果是,将game表中的所有到期的记录,根据game表的uid1和uid2对应相同的user表中的uid对用户一和二的分数的num进行比较,num大的则胜,将game表中预先设定的比赛分数gamenum加给胜者的num上,反之则负,将减去这一gamenum分数,其中,负者的num分数未必超过gamenum分数,如果超过则相应减去,如不超过,刚减光为零.
用户ID 用户分数
uid numgame表:
ID 用户一 用户一ID 用户二 用户二ID 比赛分数 开始时间 结束时间
id user1 uid1 user2 uid2 gamenum begintime endtime
想实现的效果是,将game表中的所有到期的记录,根据game表的uid1和uid2对应相同的user表中的uid对用户一和二的分数的num进行比较,num大的则胜,将game表中预先设定的比赛分数gamenum加给胜者的num上,反之则负,将减去这一gamenum分数,其中,负者的num分数未必超过gamenum分数,如果超过则相应减去,如不超过,刚减光为零.
user表中的num好像应该是个历史分数,但你判定胜负的时候却也用这个num来,不懂
if(user1num>user2num)
{update u set u.num+g.gamenum from user u,game g where datediff(now(),endtime)<0}
else
{update u set u.num-g.gamenum from user u,game g where u.num>g.gamenum}我写的语法不对,只是表达意思.求正解: