在MySQL中以逗号分隔的文本字段中查找值?

时间:2011-08-20 05:10:12

标签: php mysql search select

我有一个带有流派字段的游戏数据库,其中包含以逗号分隔的唯一ID。这是一个文本字段。例如:HALO 2 - cat_genre => '1,2' (Action,Sci-Fi)

我正在尝试制作一个计算该类型游戏总数的函数。所以它将1个值与db中用逗号分隔的多个值匹配。

我正在使用会发现动作游戏的SELECT * FROM gh_game WHERE cat_genre IN (1)

我正在努力解决这个问题,我以为我曾经把它钉过一次,但我无法理解它。

1 个答案:

答案 0 :(得分:1)

您需要创建多对多关系。像这样

CREATE TABLE gameGenreTable ( id int NOT NULL PRIMARY KEY, genreID, gameID)

编辑:如果你正在使用InnoDB,你也可以在genreID和gameID上创建外键。 我会在genreID上添加一个UNIQUE键,即gameID

然后你就可以做这样的查询

SELECT genreID,count(genreID) as count from gameGenreTable GROUP BY genreID;

- 并加入您的其他表格以获取流派名称(或仅使用ID)。