gpt4 book ai didi

php - 来自同一 ID 的 SQL 列的 SUM 值

转载 作者:可可西里 更新时间:2023-11-01 06:40:38 24 4
gpt4 key购买 nike

这是来自 wordpress 的 comment_meta。里面有一个自定义的 meta_key: rating。

我想获得该帖子所有评分的总和。

这样做的目的是从用户评分中获取平均值。我有评论者总数,我只需要 SUM。

它的用途是用于 Schema.org AggregateReview:<meta itemprop="ratingValue" content=""/> .

我曾尝试通过 jQuery 添加该值,但由于某种原因,架构未注册稍后在 DOM 中添加的文本。

var sum = 0;
$('.comment_rate').each(function(){
numItems = $('.comment_rate').length
sum += (parseFloat($(this).text()) / numItems);
$('span[itemprop="ratingValue"]').text(sum);
});

原帖

我有这张表(抱歉,图片只是我知道如何显示的方式): enter image description here

我想总结 meta_value来自匹配comment_id .

到目前为止,我已经有了这个,但它对整个列求和,而不是匹配相同 ID 的列。

<?php
$result = mysql_query('SELECT SUM(meta_value) AS value_sum FROM wp_play_commentmeta');
$row = mysql_fetch_assoc($result);
$sum = $row['value_sum'];
echo $sum;
?>

最佳答案

使用GROUP BY:

SELECT comment_id, SUM(meta_value) AS value_sum 
FROM wp_play_commentmeta
GROUP BY comment_id;

在此处查看实际效果:


如果您只想对那些具有 rating 元键的对象执行此操作,请将其添加到 WHERE 子句中。像这样:

SELECT comment_id, SUM(meta_value) AS value_sum 
FROM wp_play_commentmeta
wHERE meta_key = 'rating'
GROUP BY comment_id;

更新:

JOIN 两个表,GROUP BY post_id。像这样:

SELECT 
p.post_id,
SUM(m.meta_value) AS value_sum
FROM wp_play_commentmeta AS m
INNER JOIN wp_play_comments AS p ON m.comment_ID = p.comment_Id
wHERE meta_key = 'rating'
GROUP BY p.post_id;

请注意:请停止使用 Mysql_* 扩展,它们已被弃用。此外,您的代码这种方式容易受到 SQL Injection 的攻击。 .使用 PDO或准备好的陈述。

关于php - 来自同一 ID 的 SQL 列的 SUM 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260710/

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