获取数组查询mysql、php的最大值
Posted
技术标签:
【中文标题】获取数组查询mysql、php的最大值【英文标题】:Get the highest value of array query mysql, php 【发布时间】:2015-04-11 23:54:35 【问题描述】:非常感谢这里的其他人,我现在得到了这个查询。它工作正常,但我只需要获得 post_id 的最高值(how_many)。似乎无法在其上设置 MAX(count(*))。那么我怎么能改变这个来获得每个 id 的最高计数呢?我只需要count ==最高的每个id的值。我怎么能这样做?感谢您的帮助。
$test = $wpdb->get_results('select
posts_id, value,count(*) as how_many
From wp_mrp_rating_item_entry_value
group by
posts_id, value
order by count(*) desc');
echo '<pre>';
print_r($test);
echo '</pre>';
我需要按 MAX((count(*)) 或 MAX((count(how_many)) 排序之类的东西
我已经读过这篇文章,但我不知道如何将其用于我的目的Filtering log file using COUNT, GROUP BY, ORDER BY MAX
这是我现在得到的输出示例。所以数字 1 不应出现,因为数字 [0] 已被投票 2 次。 (多少)。我只需要输出中的每个 id 1x。没有 id 不应该出现两次或更多。因为只需要最高计数。感谢和抱歉英语不好。
Array
(
[0] => stdClass Object
(
[posts_id] => 336
[value] => 8
[how_many] => 2
)
[1] => stdClass Object
(
[posts_id] => 336
[value] => 7
[how_many] => 1
)
[2] => stdClass Object
(
[posts_id] => 380
[value] => 5
[how_many] => 1
)
[3] => stdClass Object
(
[posts_id] => 378
[value] => 7
[how_many] => 1
)
[4] => stdClass Object
(
[posts_id] => 329
[value] => 2
[how_many] => 1
)
[5] => stdClass Object
(
[posts_id] => 327
[value] => 3
[how_many] => 1
)
)
【问题讨论】:
i just need the value of every id
这正是你现在所拥有的。更具体。
我认为你在这里混淆了一些东西。 COUNT 只是,好吧,计算有多少帖子。而 MAX 将从列中选择最大值。如果您想选择最大的帖子(按分配给它的数字),您将使用 SELECT MAX(post_id)...
对不起,我的描述不是很好,我编辑了上面的问题。 @Andrei 是的,我需要计数中的最高值-但每个 id 只需 1x。感谢您的帮助
【参考方案1】:
您可以根据与最大计数的子查询的匹配来过滤 HAVING
子句中的结果组:
SELECT posts_id, value, COUNT(*) AS how_many
FROM wp_mrp_rating_item_entry_value t1
GROUP BY posts_id, value
HAVING how_many = (
SELECT COUNT(*)
FROM wp_mrp_rating_item_entry_value t2
WHERE t2.posts_id = t1.posts_id
GROUP BY t2.value
ORDER BY COUNT(*) DESC
LIMIT 1
)
【讨论】:
你是最棒的。非常感谢你,它工作得非常好。我现在很开心。问候以上是关于获取数组查询mysql、php的最大值的主要内容,如果未能解决你的问题,请参考以下文章