我在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]
。
答案 0 :(得分: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'];
答案 1 :(得分:0)
假设DB" date"字段包含一串数字分隔;就像你描述的那样,你可以使用explode()函数将该字符串转换为数组,然后在该数组上使用max()和min()
$arr = explode(";",$string);
$max = max($arr);
$min = min($arr);
如果它是每行一个数字,那么就像使用其他答案中描述的SQL那样做