选择SQL中具有最高值的列

时间:2014-02-17 14:24:07

标签: php mysql sql multiple-columns

我有一张类似下面的表

column1 | column2 | column3 | column4
   43        12        1        132

显然,'column4'具有最高价值。所以我的目标是检索这个专栏。

欲望结果:

   column4
     132

4 个答案:

答案 0 :(得分:6)

尝试使用GREATEST()函数:

SELECT GREATEST(column1, column2 colum3, column4)
FROM table

答案 1 :(得分:5)

如果您想要列名:

select greatest(column1, column2, column3, column4) as biggestval,
       (case when column1 = greatest(column1, column2, column3, column4)  then 'column1'
             when column2 = greatest(column1, column2, column3, column4)  then 'column2'
             when column3 = greatest(column1, column2, column3, column4)  then 'column3'
             when column4 = greatest(column1, column2, column3, column4)  then 'column4'
        end) as biggestval_columnname

请注意,如果任何列的值为NULL,则无效。

答案 2 :(得分:0)

试试这个:

SELECT
   CASE
       WHEN column1 >= column2 AND column1 >= column3 THEN column1
       WHEN column2 >= column1 AND column2 >= column3 THEN column2
       WHEN column3 >= column1 AND Date3 >= column2 THEN column3
       ELSE  column1 
   END AS TopColumn

没有SQL标准功能可以满足您的要求

答案 3 :(得分:0)

将您的值存入数组并使用函数PHP MAX,试试这个

$sql = 'SELECT column1, column2, column3, column4 FROM table';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$t_number=array();
$i=0;
while($data = mysql_fetch_assoc($req)){
  $t_number[$i]=array(
        $data['column1'],
        $data['column2'],
        $data['column3'],
        $data['column4']
 );
   $maxValue=max($t_number[$i]);
   echo $maxValue;
   $i++;
}