如何从一个记录的两个字段获得最大值

时间:2012-12-24 09:39:42

标签: mysql max

我想从表(mysql)中的一个记录的两个字段给出最大值 我的表是:

CREATE TABLE `testtbl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `startdate` date NOT NULL,
  `enddate` date NOT NULL,
  PRIMARY KEY (`userid`)
) 

例如我的数据是:

  

1,' 2012-12-04' ,' 2013-02-02'

但是当我使用下面的sql时,我会面临错误 sql代码是:

select max(startdate,enddate) from `testtbl`

3 个答案:

答案 0 :(得分:5)

MAX()函数用于获取所有行的字段的最大值,您正在寻找GREATEST()函数:

select GREATEST(startdate,enddate) from `testtbl`

答案 1 :(得分:1)

对于您的情况,您最好使用IF - 构造,因为您将数据放在单独的字段中。也许是这样的:

select if(startdate>enddate,startdate,enddate) 
from `testtbl`;

另一种方法是使用GREATEST()

当您在同一列中的不同行中拥有所有数据时,最好使用MAX

答案 2 :(得分:1)

Select case when startdate > enddate then startdate 
            else enddate end as GreaterDate 
from 'testtb1'