1

我想从表(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`
4

3 回答 3

5

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

select GREATEST(startdate,enddate) from `testtbl`
于 2012-12-24T09:42:30.197 回答
1

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

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

另一种方法是使用GREATEST().

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

于 2012-12-24T09:44:23.873 回答
1
Select case when startdate > enddate then startdate 
            else enddate end as GreaterDate 
from 'testtb1'
于 2012-12-24T09:46:16.873 回答