我正在使用Codeigniter创建一个新闻网站,我有一个文章 MySQL 表格 ID,标题,正文,类别,创建等...
在“类别”字段中,我将类别用逗号(,)分隔,如...
我想获取特定类别的文章..如国家(1,2,4)。 我尝试了很多方法但似乎没什么用。
请帮助谢谢。
答案 0 :(得分:2)
您可以使用FIND_IN_SET
方法查询Categories
字段
FIND_IN_SET('Crime', your_table.Categories)
您的方法存在许多缺点,从长远来看,将表格关系更改为Categories
会更具可扩展性。您可以使用manytomany关系和联接表来更轻松地查询您的类别。
FIND_IN_SET将执行全表扫描,并且使用此逗号分隔方式将非常难以聚合,并获得文章/类别计数。
Is storing a delimited list in a database column really that bad?
Bill Karwin将这种反模式作为他出色书中的第一章。