MySQL 查询 select 长文本数据类型的 SUM 并将结果存储为变量
MySQL query to select SUM of longtext data type and store result as variable
我需要 select 数据类型为 "longtext" 的 table 列中的一些值,其中另一列具有特定值并将这些值相加。我需要将总和存储为一个变量,我将 a.) 在网页上回显,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 数据库 table,我无法更改数据类型。一如既往,感谢您的帮助!
编辑 - 尝试下面 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>";
}
已解决:
感谢 Gordon Linoff 指出我的印刷错误。我最终制作了一个示例 table 并自行敲定。事实上,我的查询中不需要单引号。然而,在我回应结果的地方,我需要单引号,但它们在错误的地方。注意 $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>";
}
我需要 select 数据类型为 "longtext" 的 table 列中的一些值,其中另一列具有特定值并将这些值相加。我需要将总和存储为一个变量,我将 a.) 在网页上回显,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 数据库 table,我无法更改数据类型。一如既往,感谢您的帮助!
编辑 - 尝试下面 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>";
}
已解决:
感谢 Gordon Linoff 指出我的印刷错误。我最终制作了一个示例 table 并自行敲定。事实上,我的查询中不需要单引号。然而,在我回应结果的地方,我需要单引号,但它们在错误的地方。注意 $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>";
}