Php MySQL查询,选择长文本数据类型之和,并将结果存储为变量
我需要从数据类型为“longtext”的表列中选择一些值,其中另一列具有特定值,并将这些值相加。我需要将总和存储为一个变量,我将a.)在网页上回显,b.)在页面后面的计算中使用该值 这可以找到我需要加起来的所有值:Php MySQL查询,选择长文本数据类型之和,并将结果存储为变量,php,mysql,casting,sum,longtext,Php,Mysql,Casting,Sum,Longtext,我需要从数据类型为“longtext”的表列中选择一些值,其中另一列具有特定值,并将这些值相加。我需要将总和存储为一个变量,我将a.)在网页上回显,b.)在页面后面的计算中使用该值 这可以找到我需要加起来的所有值: $query = "SELECT meta_value FROM wp_postmeta WHERE meta_key = '_crowdfundingtotalprice' ORDER BY CAST(`meta_value` AS UNSIGNED) DESC";
$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>";
}
$result=mysql\u query($query)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result)){
echo$row['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>";
}
$query=“选择强制转换(总和('meta_值')为无符号)
从wp_Posteta
其中meta_key=''u crowdfundingtotalprice';
$result=mysql\u query($query)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result)){
echo$row[SUM('meta_value')。“
”;
}
正如您可能已经猜到的,这是一个Wordpress数据库表,我无法更改数据类型。一如既往,感谢您的帮助
编辑-尝试下面Gordon Linoff的建议,我删除了meta_值周围的单引号。它仍然不起作用,但感谢您的建议:
$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>";
}
$query=“选择强制转换(总和(meta_值)为无符号)
从wp_Posteta
其中meta_key=''u crowdfundingtotalprice';
$result=mysql\u query($query)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result)){
echo$行[总和(元值)]。“
”;
}
已解决:
谢谢Gordon Linoff指出我的印刷错误。最后我制作了一个样品台,并自己敲定了它。事实上,我的查询中不需要单引号。然而,在我回应结果的地方,我需要单引号,但它们放错了地方。注意$row['SUM(meta_值)'”
而不是$row[SUM('meta_值')]
此外,我不需要使用CAST(这不起作用),因为如果查询使用math,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>";
}
$query=“选择元键,求和(元值)
从wp_Posteta
其中meta_key=''u crowdfundingtotalprice';
$result=mysql\u query($query)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result)){
echo$row['SUM(meta_值)'。“
”;
}
please,请停止在每个手册页上使用不推荐使用的mysql
扩展:该扩展将在将来被删除,如果运行PHP5.5及更高版本,将发出E_deprecated
通知。学会使用PDO
或mysqli*
来代替(顺便说一句,i
代表改进),并学会爱statements@EliasVan Ootegem明白,但出于测试目的,我使用了down and dirty。非常感谢您对解决方案的帮助。您在meta\u value
周围有单引号。你根本不需要任何报价。“我认为这是一个印刷错误,所以我决定将其关闭。@GordonLinoff谢谢你的建议。”。请看我上面的编辑。我删除了单引号,但这仍然不起作用。请你再提一个建议好吗?