簡體   English   中英

來自同一ID的SQL列的SUM值

[英]SUM values from SQL column from same ID

這是來自wordpress的comment_meta。 在有一個自定義meta_key:評級。

我想獲得該帖子所有評級的總和。

這樣做的目的是從用戶評級中獲得平均值。 我有評論者的總數,我只需要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);
});

原始郵政

我有這張桌子(對不起,圖片只是我知道如何展示的方式): 在此輸入圖像描述

我想從匹配的comment_id總結meta_value

到目前為止,我有這個,但它整個列不是匹配相同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 metakey的人執行此操作,請在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注入攻擊。 請改用PDO或預備語句。

查詢將是

  SELECT SUM(meta_value) AS value_sum, comment_id FROM wp_play_commentmeta
  Group by comment_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM