gpt4 book ai didi

php - 以 php foreach 和 sql group by 为标题

转载 作者:行者123 更新时间:2023-11-29 14:15:13 25 4
gpt4 key购买 nike

我不知道如果没有第二个 sql 查询这是否可能,但我认为最好先询问一下。

我有带有 GROUP BY 子句的 SQL 查询。在用于显示结果的 foreach 循环中,我想为每个条件插入一个标题。是否可以只用一个查询来完成?

即。

仅限非 Taproom

DATA
DATA
DATA

仅限酒吧间

DATA
DATA
DATA

SQL 代码:

SELECT 
`Keg`.`content_type_id`, `Keg`.`is_taproom_only`, count(content_type_id), `ContentType`.`id`, `ContentType`.`name`
FROM
`kegdb`.`kegs` AS `Keg`
LEFT JOIN
`kegdb`.`content_types` AS `ContentType`
ON (`Keg`.`content_type_id` = `ContentType`.`id`)
WHERE
`status_type_id` = 6
GROUP BY
is_taproom_only, content_type_id
ORDER BY
`is_taproom_only` ASC, `ContentType`.`name` ASC

最佳答案

所以,假设您的数据是这样的:

is_taproom_only, content_type_id, content_type_name
-----------------------
NonTaproom, content_type_id, content_type_name
NonTaproom, content_type_id, content_type_name
NonTaproom, content_type_id, content_type_name
TaproomOnly, content_type_id, content_type_name
TaproomOnly, content_type_id, content_type_name
TaproomOnly, content_type_id, content_type_name

您可以(如上面评论中的air4x所述)使用变量来存储标题,并在循环结果时,仅在与之前存储的标题不同时打印标题。

注意:只有当您的结果按标题值排序(我可以看到它们是这样)时,此方法才有效。

PHP 代码看起来像这样:

$is_taproom_only = '';

foreach $rows as $row {

echo ($is_taproom_only <> $row['is_taproom_only']) ? $row['is_taproom_only'] : ''; //only print if they're different
$is_taproom_only = $row['is_taproom_only']; //store for the next iteration

//print other data
echo $row['content_type_id'];
echo $row['content_type_name'];

}

关于php - 以 php foreach 和 sql group by 为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com