PHP Mysql查询帮助请

时间:2015-06-24 16:05:20

标签: mysql

我在mysql行值中有这样的东西:

{15;16;}

我想要一个mysql_query来更新它。它必须是类似“{15; 16; 17}”所以我需要删除最后“}”添加我的文字并用“}”关闭

删除最后的“}”代码:

SUBSTRING(server_players, 1, LENGTH(server_players)-1)

添加文字:

CONCAT(server_players, '17;}')

但我不知道如何构建一个查询:(

这是查询:

UPDATE members SET "Here must be built code" WHERE server_id=1

1 个答案:

答案 0 :(得分:0)

一般来说,这种操作最好在应用程序中完成,但另外,以这种格式存储数据并不是一个好主意。关系数据库更喜欢将事物分解为单个记录。

那就是说,你的解决方案是嵌套这两件事:

UPDATE members
  SET server_players=CONCAT(SUBSTRING(server_players, 1, LENGTH(server_players)-1), '17;}')
  WHERE server_id=1

从列表中删除任意玩家的查询代码将更加复杂。我强烈建议不要使用此架构。

正如您所看到的,这是一种非常非常混乱的方式,可以做到:

INSERT INTO server_players (server_id, player_id) VALUES (1, 17)

如果您有一张专门针对服务器上玩家的表格。

请记住,正确的关系表具有快速查询的优势,因为它们已被编入索引,并且您可以对该数据执行有用的操作,例如应用JOIN来预加载其他信息。

相关问题