为了尽可能减少SQL语句数量,我想从MySQL中进行select set操作:
现在,我有一个产品列表,排列方式如下:
然后在输出时,使用foreach循环:
SELECT * FROM products WHERE category IN (10,120,150,500) ORDER BY category,id;
现在,我有一个产品列表,排列方式如下:
CATEGORY
- product 1
- product 2
CATEGORY 2
- product 37
...
什么是处理MySQL结果的最佳和最有效方法?
我认为可以像这样做(伪代码PHP)
foreach ($product = fetch__assoc($result)){
$products[$category][] = $product;
}
然后在输出时,使用foreach循环:
foreach($categories as $category){
foreach($products[$category] as $product){
$output;
}
}
这是最好的方法吗,还是类似于mysql_use_groupby
这样的神奇方法?
ORDER
而不是GROUP BY
。 - Adam Kiss