TP5.1 文章分类用逗号隔开,怎么查询属于多个分类的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5.1 文章分类用逗号隔开,怎么查询属于多个分类的数据?相关的知识,希望对你有一定的参考价值。

文章有个分类字段 nav,值是1,3,4,5,6,72。。。。这种格式,里面都是子分类的ID,用逗号隔开
然后我获取到了某个父类下的子类ID数组[3,5,28,32。。。]
怎么查询出 属于这个子分类数组的文章呢

把这个逗号分隔的字符串字段进行拆分:一列转换为多行数据。
然后和字文章进行关联查看下就可以查询出对应的文章了。追问

但是我还要分页,每页显示10条

追答

这个和分页没有关系。如果要分页也是根据关联查询后的结果集合进行分页。
但是在分页之前,你首选得到非分页数据。然后再考虑分页,分页的时候,增加limit x, y这样的数值就可以了。

参考技术A

通常文章表那里会有一个分类id的字段,例如是:category_id。你能拿到了分类的id,直接where in 就好

Db::table('articles')//articles 是你的文章表
->where('category_id','in',$categoryIds)//$categoryIds 是你查到的分类id 数组

->page(1,10)//分页

->selete();

分类数据一般不会很大,所以分两次查询效率最高,如果分类数据查询比较慢,那就把它缓存起来。

追问

我的分类ID字段 `nav` 值是1,23,3,511 ....这种逗号分隔的字符串,不能直接whereIn。。。。

mysql字段存的有逗号隔开 取出来怎么分割了输出

参考技术A 可以用split()方法,就是专门分割字符串的,比如说:
city.split(",");就是将city对象用“,”分开,返回的是数组

以上是关于TP5.1 文章分类用逗号隔开,怎么查询属于多个分类的数据?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL列中的数据以逗号隔开,如何查询?

mysql字段存的有逗号隔开 取出来怎么分割了输出

MYSQL列中的数据以逗号隔开,如何查询?

Mysql 数据字段值是用逗号隔开,如何写SQL语句

mysql字段存的有逗号隔开 取出来怎么分割了输出

mysql查询某数字在某字段以逗号隔开的字符里面