Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter活动记录,如查询_Php_Mysql_Codeigniter - Fatal编程技术网

Php Codeigniter活动记录,如查询

Php Codeigniter活动记录,如查询,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在用Codeigniter制作一个新闻网站,我有一个文章MySQL表格 ID、标题、正文、类别、已创建等 在类别字段中,我用逗号(,)分隔类别,如 第1条类别:国家、犯罪、电影 第2条类别:国家、城市、戏剧 第3条类别:搞笑、国际、电影 第4条类别:国家、犯罪、电影 我想取特定类别的文章。。像国家的(1,2,4)。 我尝试了很多方法,但似乎都不管用 请帮助,谢谢。您可以使用FIND\u IN\u SET方法查询您的类别字段 FIND\u IN\u SET('Crime',您的\u表。类别

我正在用Codeigniter制作一个新闻网站,我有一个文章MySQL表格 ID、标题、正文、类别、已创建等

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

  • 第1条类别:国家、犯罪、电影
  • 第2条类别:国家、城市、戏剧
  • 第3条类别:搞笑、国际、电影
  • 第4条类别:国家、犯罪、电影
我想取特定类别的文章。。像国家的(1,2,4)。 我尝试了很多方法,但似乎都不管用


请帮助,谢谢。

您可以使用
FIND\u IN\u SET
方法查询您的
类别
字段

FIND\u IN\u SET('Crime',您的\u表。类别)

您的方法有许多缺点,从长远来看,将表关系更改为
类别
,将更具可扩展性。您可以使用多个关系和联接表来更轻松地查询类别

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



Bill Karwin把这一反模式作为他优秀著作中的第一章。

因为它还没有完成,我真的会考虑DB结构的改变……您应该有单独的类别表,以及一个用于文章类别连接的附加表(id、cat_id、article_id)。然后你可以相对容易地得到你想要的。如果你想保留这个计划:也许这会有帮助。谢谢你的回复。。。我一定会尝试你的方法,让你知道它是否有效。谢谢。