更改我的查询以从表列中获取最大值和最小值

时间:2015-02-23 22:23:27

标签: php mysql

我有以下功能:

function get_max_weight()
{
   global $db;
   $query = "SELECT weight FROM products WHERE weight=(select max(weight) from products)";
   $result = mysql_query($query);
   $results = mysql_fetch_row($result);
   return $results[0];
}

我正在使用nouislider并使用$maxweight = get_max_weight()来定义滑块范围的上限。我现在想从相同的功能中获得最小重量。

所以我的问题是1)我如何更改上面的查询以获得最大值和最小值; 2)如何在我的页面上输出这些值?

3 个答案:

答案 0 :(得分:4)

您不需要子查询,只需:

$query = "SELECT MIN(weight) AS minweight, MAX(weight) AS maxweight FROM products";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
return $row;

这将返回一个关联数组,如:

[ 'minweight' => 10, 'maxweight' => 50 ]

答案 1 :(得分:1)

我不明白为什么你需要一个子查询,看起来你只是取一行,所以为什么你需要一个查询来返回多行呢?

单个查询可以返回最小值和最大值,例如:

SELECT MIN(weight) AS min_weight
     , MAX(weight) AS max_weight
  FROM products

至于从函数中返回这两个值,我认为你可以从函数中返回一个数组对象。


不推荐使用PHP mysql 函数。有两种可用的界面: mysqli PDO 。 (我不能在良心上给出一个包含对已弃用的mysql_函数的调用的答案。)

答案 2 :(得分:0)

使用:

$query = "SELECT max(weight), min(weight) FROM products";
$execute = mysql_query($query);
$result = mysql_fetch_row($execute);
return $result;

获取值

echo $result[0]; //gives you max weight.
echo $result[1]; //gives you min weight