MySQL查询选择长文本数据类型的SUM并将结果存储为变量

时间:2015-03-30 18:11:26

标签: php mysql casting sum longtext

我需要从表列中选择一些数据类型为“longtext”的值,其中另一列具有特定值并添加这些值。我需要将总和存储为变量,我将在网页上回显。)b。)在页面后面的计算中使用该值。

这可以找到我需要添加的所有值:

 $query = "SELECT meta_value 
 FROM wp_postmeta 
 WHERE meta_key = '_crowdfundingtotalprice' 
 ORDER BY CAST(`meta_value` AS UNSIGNED) DESC";

我可以用以下方式显示结果:

$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row['meta_value']. "<br>";
}

从我的搜索中,我认为我接近我的查询,但是当我尝试回显结果时,我的页面无法加载。这是不起作用的:

$query = "SELECT CAST(SUM('meta_value') as UNSIGNED) 
FROM wp_postmeta 
WHERE meta_key = '_crowdfundingtotalprice'";

$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
    echo $row[SUM('meta_value')]. "<br>";
}

您可能已经猜到,这是一个Wordpress数据库表,我无法更改数据类型。一如既往,感谢您的帮助!

编辑 - 尝试下面的Gordon Linoff建议,我删除了meta_value周围的单引号。它仍然不起作用,但谢谢你的建议:

$query = "SELECT CAST(SUM(meta_value) as UNSIGNED) 
FROM wp_postmeta 
WHERE meta_key = '_crowdfundingtotalprice'";

$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
    echo $row[SUM(meta_value)]. "<br>";
}

1 个答案:

答案 0 :(得分:0)

解决:

感谢Gordon Linoff指出我的印刷错误。我最后制作了一张样品表,并自己敲了一下。实际上,我的查询中的单引号不是必需的。然而,在我回应结果的地方,我需要单引号,但它们在错误的地方。注意$row['SUM(meta_value)']而不是$row[SUM('meta_value')]

此外,我不需要使用CAST(这不起作用),因为如果查询使用数学,MYSQL将默认将值视为数学值。

$query = "SELECT meta_key, SUM(meta_value) 
 FROM wp_postmeta 
 WHERE meta_key = '_crowdfundingtotalprice'";

$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row['SUM(meta_value)'] ."<br>";
}