0

我正在使用 Codeigniter 制作新闻网站,并且我有一个 Articles MySQL表,例如 ID、标题、正文、类别、已创建等...

在类别字段中,我将类别用逗号(,)分隔,例如...

  • 第 1 条分类:国家、犯罪、电影
  • 第二条分类:国家、城市、戏剧
  • 第三条分类:搞笑、国际、电影
  • 第 4 条类别:国家、犯罪、电影

我想获取具有特定类别的文章.. 比如 National (1,2,4)。我尝试了很多方法,但似乎没有任何效果。

请帮忙谢谢。

4

1 回答 1

2

您可以使用FIND_IN_SET方法来查询您的Categories字段

FIND_IN_SET('Crime', your_table.Categories)

您的方法有许多缺点,从长远来看,将您的表关系更改为Categories. 您可以使用多对多关系和连接表来更轻松地查询您的类别。

FIND_IN_SET 将进行全表扫描,使用这种逗号分隔的方式将很难聚合,并获取文章/类别计数。


在数据库列中存储分隔列表真的那么糟糕吗?

Bill Karwin 将这种反模式作为其优秀著作的第一章。

于 2013-07-08T19:31:11.653 回答