2012-07-18 46 views
1

当玩家移动的项目,以他的性格项目类型(Type)是在玩家装备的袖标类型=“手镯” ID喜欢它的情况下发送到服务器游戏开发My​​SQL的条件

尝试将item_id放置在game_moblist(游戏中的玩家和badguys)表中的leftbracer列中,如果左侧已经有item_id,则将其放置在右侧。我使用值= 0来表示一个空插槽。

if (type=="bracelet"){ 
    to_sql="UPDATE game_moblist SET leftbracer"="+item_id+" WHERE id="+player_id 
} 

以前我在使用select,但是我想在1个查询中做。谢谢。

+0

你有一个'=',可能应该是一个'+' 。但我不明白。你在建立你的SQL客户端吗? – 2012-07-18 17:17:11

+0

如果你使用MySQL作为你的状态库,它将会造成缓慢的游戏。您应该将游戏状态保持在本地数据结构中,并根据需要将该状态备份到数据库。听起来就像是在将数据库中的左手或右手配备护腕的逻辑一样。 – 2012-07-18 17:22:48

+0

你的服务器端语言是什么?你的语法看起来不对,或者我可能不习惯它 – 2012-07-18 17:28:04

回答

1

只需使用一个IF瑟如果leftbracer = 0,和值设置为新项目的ID或保留旧值

UPDATE game_moblist SET 
    rightbracer = IF(leftbracer = 0, rightbracer, :item_id), 
    leftbracer = IF(leftbracer = 0, :item_id, leftbracer); 
+0

在将item_id分配给该列之前,您应该确保rightbracer也是空的。 – 2012-07-18 17:32:15

+0

可能是一个好的ide,但这不是OPs的解释 – 2012-07-18 17:34:08