我想从表(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`
答案 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'