我有一个游戏数据库,里面有一个类型字段,里面有唯一的ID,用逗号隔开。这是一个文本字段。例如:HALO 2 - cat_genre => '1,2' (Action,Sci-Fi)
我正在试着做一个计算该类型游戏总数的函数。所以它将1个值与数据库中用逗号分隔的多个值相匹配。
我用的是可以找到动作游戏的SELECT * FROM gh_game WHERE cat_genre IN (1)
。
我正在努力解决这个问题,我以为我以前已经钉过一次了,但我就是想不出来。
最佳答案
你需要建立一个多对多的关系。像这样
CREATE TABLE gameGenreTable ( id int NOT NULL PRIMARY KEY, genreID, gameID)
编辑:如果你使用InnoDB,你也可以在genreID和gameID上创建外键。。
我会在genreID上添加一个唯一的密钥gameID
然后你可以做这样的查询
SELECT genreID,count(genreID) as count from gameGenreTable GROUP BY genreID;
--并加入到另一个表中以获取流派名称(或者只使用ID)。
关于php - 在MySQL中用逗号分隔的文本字段中查找值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7129822/