mysql - SQL一列多值

标签 mysql sql sqlite

嗨,我什至不知道如何提出这个问题,但我会尽力。

我有一个名为 games 的表,该表中有 3 列,ID (INT)、纪元 (INT) 和用户 (TEXT),现在每个用户列中都有 4 到 25 个值,用逗号分隔,值的范围为 1 到 6 个字符,例如:

ID, EPOCH, USERS

1, 1461779167, (123, 58234, 548245, 225122)
2, 1461774823, (326784, 54235, 6373, 3566, 384174)
3, 1461773423, (326784, 542355, 234, 351)

现在我的问题是我只需要 fetech 用户中的一个,假设我需要获取“用户”54235,它不能包含,因为它会与 542355 冲突,所以我该怎么办?我应该如何正确排列这些列以避免出现这种情况或总体上简化它?

最佳答案

这些列的“正确排列”需要一些标准化。

您可以有第二个表,称为“player_games”,其中包含:

列 ID、游戏、玩家

然后,您可以通过插入到player_games 中将用户与游戏关联起来。

因此,如果玩家 2 与游戏 5 相关联,您将:

INSERT INTO player_games (game, player) VALUES (5, 2);

然后,如果您需要获取与玩家 2 关联的所有游戏:

SELECT game FROM player_games WHERE player = 2;

如果您需要获取与游戏 5 相关的所有玩家:

SELECT player FROM player_games WHERE game = 5;

关于mysql - SQL一列多值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36897288/

相关文章:

mysql - 什么样的连接(如果有的话)在这里是合适的?

mysql - 如何在mysql中查找已登录但未注销且今天仍然登录的用户?

sql - ORA-01427:单行子查询在CASE语句中返回多个行

android - 如何在android中的所有表列中搜索字符串?

javascript - 未捕获错误 : EPERM: operation not permitted, 写入

MySQL连接两个表但先过滤

mysql - 尝试使用 MySQL ADO.NET 驱动程序连接到数据库时,Visual Studio 2010 从数据库生成模型时出现错误消息,如何解决?

jQuery AutoComplete - 使用 JOIN 查询数据库

c++ - 如何在 WinRT DLL 中使用 SQLite?

mysql - 如何从AWS的快照或实例中提取数据?