mysql查询是否能一次性查询出分类结果,例如类型a、b查询出获取例如{"a"=>[...],"b",""}

两张表关联查询得到结果进行类型分组,如何能获取出程序类似结构
{

"类型A": [...],
"类型B":[...]

}
还是说每个分类查询一个类型的列表都要单独再查询一次

阅读 2.1k
2 个回答

1.以分类为主表进行左连接查询,结果大体是这样:

[
    '类型A','xx','bb',
    '类型B','ii','pp',
    '类型B','ii','oo',
]

然后用PHP处理结果数组;
2.分次查询,循环分类数组,根据分类查询数据并组装在一起;

$arr = 列表数组;
$data = array();
foreach ($arr as $k => $v) {
    $data[$v['name']] = 查询的分类数据;
}

MySQL属于轻连接,一次查询连接不会占用它的多少资源,反而是一个很长的复杂的查询语句会很影响执行效率,从性能优化的角度上来说建议把太长的sql拆分成几次进行查询;

可以使用mysql的group_concat试一下。详细请查看这篇文章https://blog.csdn.net/rainysp...。看看能不能解决你的问题~~。
我测试了一下,可以实现,也就是将多行整合成一行返回。性能方面你可以测试一下~~

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题