我正在尝试运行 SQL 查询以从表中选择所有行,然后显示每行具有最低值的列。
例如,让我们从 row1 开始...
columns1, column2, column3, column4
该行的最低值位于column3
中,因此我需要在row2
、column4<上回显
具有最低值,因此应显示该行的 column3
值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
表中的列是动态的,因此它们一直在变化,并且不断添加更多列
最佳答案
你也可以用这个得到结果
选择 ID, 当 COLUMN1 <= COLUMN2 且 COLUMN1 <= COLUMN3 THEN COLUMN1 时的情况 当 COLUMN2 <= COLUMN1 且 COLUMN2 <= COLUMN3 时,则 COLUMN2 ELSE COLUMN3 END AS 最小 来自表名
您可以获得任意数量的列的结果。
关于PHP/MySQL 从表中选择所有行并显示具有最低值的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18313871/