PHP:获取 mysql 列中的最高值和最低值


PHP: get the highest and lowest value in a mysql column?

我正在尝试在 mysql 列中获取最高和最低值,但我不知道这是否可能!

我在官方 MYSQL 论坛上遇到了这段代码,但我真的不知道如何将这些值作为 PHP 变量获取!

SELECT
(SELECT `price` FROM mytable ORDER BY `price` LIMIT 1) AS lowest,
(SELECT `price` FROM mytable ORDER BY `price` DESC LIMIT 1) AS highest

所以基本上我需要做的是从那个 mysql 查询中创建 PHP 变量,并只获得最高值作为$hiestprice和最低值作为$lowestprice

所以我继续前进,我做到了:

$sql = "SELECT
    (SELECT `price` FROM mytable ORDER BY `price` LIMIT 1) AS lowest,
    (SELECT `price` FROM mytable ORDER BY `price` DESC LIMIT 1) AS highest";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query ); // count the output amount
if ($productCount > 0) {
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$hiestprice = $row['price'];
$lowestprice = $row['price'];
}
}

但这是错误的,当我回显$hiestprice$lowestprice时,我的 PHP 页面上没有任何返回!

有人可以指出我正确的方向吗?

首先,您可以优化查询并使用

SELECT MIN(  `price` ) AS  `lowest` , MAX(  `price` ) AS  `highest` FROM  `mytable`

比你可以使用价格

$highestprice = $row['highest'];
$lowestprice = $row['lowest']

当你使用AS lowest后缀时,在php和其他客户端(如phpmyadmin(中,你会得到这个别名lowest

可以将查询优化为一个选项:

SELECT MIN(`price`) AS `lowest`, MAX(`price`) AS `highest` FROM `mytable`;

在 php 中(对于两个查询,你的和优化的(,你应该通过别名得到:

<?php
$hiestprice = $row['lowest'];
$lowestprice = $row['highest'];
$hiestprice = $row['highest'];
$lowestprice = $row['lowest'];

试试这个。

您还应该考虑编辑查询,

SELECT MIN(`price`) AS lowest , MAX(`price`) AS highest FROM  `mytable`

希望这有帮助。