我有两个msyql表,徽章和事件。我用了一个连接以发现所有的事件,并返回徽章信息使用下面的代码的事件(标题&说明):在php(而不是mysql)中获取最大值
SELECT COUNT(Badges.badge_ID)AS BADGE_COUNT,标题,Badges.description FROM
Badges
JOINEvents
ON Badges.badge_id = Events.badge_id GROUP BY 标题ASC
除了计数,我需要知道事件的最项的值。我以为我会用max()函数在php中执行此操作,但我无法正常工作。所以,我决定通过使用“ORDER BY badgecount DESC LIMIT 1”来修改上面的查询来得到相同的结果,它返回一个单个元素的数组,它的值是所有事件的最高计数总数。
虽然这个解决方案对我来说很好,但我很好奇它是否需要更多资源来进行2次调用服务器(b/c我现在使用两个查询),而不是在php中处理它。如果我是用php做的,我怎么能得到关联数组中某个特定项的最大值(如果可能的话,能够返回关键字和值将会很好)?
编辑: OK,这是惊人的什么休息几个小时就会为心灵做。今天早上我打开了我的代码,并对代码进行了简单的修改,这对我来说很合适。我只是在计数字段上创建了一个变量,如果新字符大于旧字符,则将其更改为新值(请参阅以下代码中的“if”语句):
if($ c> $ highestCount){ $ highestCount = $ c; }
如果你担心(读)表现你有没有考虑到计算和存储冗余信息何时出现新条目? – VolkerK 2009-08-28 07:31:33
看看这个非常类似的问题问不到15分钟前: http://stackoverflow.com/questions/1345307/php-retrieve-minimum-and-maximum-values-in-a-2d-associative-array – Amber 2009-08-28 06:33:27