gpt4 book ai didi

php - 在 php 中获取最大值(而不是 mysql)

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:27 25 4
gpt4 key购买 nike

我有两个 msyql 表,Badges 和 Events。我使用连接查找所有事件并使用以下代码返回该事件的徽章信息(标题和描述):

SELECT COUNT(Badges.badge_ID) AS badge_count,title,Badges.description FROM Badges JOIN Events ON Badges.badge_id=Events.badge_id GROUP BY title ASC

除了计数之外,我还需要知道条目最多的事件的值。我想我会在 php 中使用 max() 函数来执行此操作,但我无法使其正常工作。因此,我决定通过使用“ORDER BY badgecount DESC LIMIT 1”修改上述查询来获得相同的结果,它返回单个元素的数组,其值是所有事件的最高计数总数。

虽然这个解决方案对我来说效果很好,但我很好奇是否需要更多资源来对服务器进行 2 次调用(b/c 我现在使用两个查询)而不是在 php 中解决。如果我在 php 中这样做,我如何才能获得关联数组中特定项目的最大值(如果可能的话,能够返回键和值会很好)?

编辑:好吧,几个小时的休息对大脑的作用真是太神奇了。今天早上我打开了我的代码,并对代码进行了简单的修改,这对我来说很有效。我只是在计数字段上创建了一个变量,如果新值大于旧值,则将其更改为新值(参见以下代码中的“if”语句):

if ( $c > $highestCount ) { $highestCount = $c; }

最佳答案

这可能会再次导致“宗教 war ”,但我会选择两个查询版本。对我来说,尽可能多地在数据库中处理数据会更干净。从长远来看,查询缓存等会平衡额外查询造成的开销。

无论如何,要在 PHP 中获得最大值,您只需要遍历 $results 数组:

getMax($results) {
if (count($results) == 0) {
return NULL;
}

$max = reset($results);
for($results as $elem) {
if ($max < $elem) { // need to do specific comparison here
$max = $elem;
}
}
return $max;
}

关于php - 在 php 中获取最大值(而不是 mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345331/

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