【发布时间】:2013-08-19 12:29:51
【问题描述】:
我正在尝试运行 SQL 查询以从表中选择所有行,然后显示每行具有最低值的列。
例如,让我们从第 1 行开始...
columns1, column2, column3, column4
该行的最小值在column3 中,所以我需要回显column3 值,然后在row2 上,column4 具有最低值,因此应该为该行显示column4。
我确实尝试过这段代码:
$sql="SELECT * from callplanmeta ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
$sql2="SELECT *, MIN(NULLIF(".$result["callplanname"].",0)) as number2 from callplandata ";
echo $sql2;
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
while($result2=mysql_fetch_array($rs2))
{
echo $result2["description"].' - '.number_format($result2["number2"],2).'<br><br>';
}
}
然后我意识到它的做法是错误的,只显示了 1 行的最低值
callplandata 表中的列名与callplanmeta 表中的callplanname 列匹配
callplandata 表中的列是动态的,因此它们一直在变化,并且不断添加更多列
【问题讨论】:
-
我想说,如果您正在向表中动态添加列,则需要考虑对该表进行规范化,并将这些列作为多对多连接表上的行值。跨度>