1

我是 PHP 开发的新手,我找不到解决问题的方法。
我必须清理 Mysql 数据库中的一些数据。我的数据库中有一个date充满时间段的列,例如

-520;-510;0;-500;-530;-599;-499;-510;-490;-500;0;-450 

我想从中提取最小值和最大值,这样我就只剩下 2 个时间段了。

我试过这个:

$sql = "SELECT date FROM records WHERE serial = 1";
$requete = mysql_query($sql,$cnx) or die(".mysql_error().");
while($result = mysql_fetch_array($requete))
{
    $res = $result[date];
    $min = min($res);
    $max = max($res);
}

我知道它不能工作,因为 min 和 max 函数仅适用于数组,但我不知道如何将我的数组转换$result[date]为新数组。

4

2 回答 2

5

在 SQL 中执行此操作,这样的事情应该可以工作:

$sql = "SELECT MAX( date) as maximum, MIN( date) as minimum
            FROM records 
        WHERE serial = 1
        GROUP BY serial";

然后要检索结果,您需要一行:

$requete = mysql_query($sql,$cnx) or die( mysql_error());
$row = mysql_fetch_array($requete);
echo $row['maximum'] . ' ' . $row['minimum'];
于 2012-07-02T16:21:24.480 回答
0

假设数据库“日期”字段包含一串由 ; 分隔的数字 就像您描述的那样,您可以使用 explode() 函数将该字符串转换为数组,然后在该数组上使用 max() 和 min()

$arr = explode(";",$string);
$max = max($arr);
$min = min($arr);

如果每行有一个数字,则使用 SQL 进行操作,如另一个答案中所述

于 2012-07-02T16:27:22.490 回答