我有两个日期列domain_renew_date
和hosting_renew_date
。
我试图显示在接下来的x天内需要更新的行。
但是,如果我按一列而不是另一列,则会忽略一些接近当前日期的日期,因为另一列不需要续订。
是否可以比较两列的最大值并使用该值来排序?
这就是我现在所拥有的,但我刚刚发现“最伟大的”并没有做我想做的事情。
"SELECT *
FROM `domains` as Domain
WHERE (`domain_renew_date` < '".$date."' AND `domain_renew_date` != '0000-00-00')
OR (`hosting_renew_date` < '".$date."' AND `hosting_renew_date` != '0000-00-00')
ORDER BY greatest(`domain_renew_date`, `hosting_renew_date`) ASC"
感谢。
答案 0 :(得分:4)
甚至更简单
SELECT if(domain_renew_date > hosting_renew_date, domain_renew_date, hosting_renew_date) as greater_date
FROM domains
WHERE hosting_renew_date >= '".date."' OR domain_renew_date >= '".$date."'
ORDER BY greater_date ASC
答案 1 :(得分:1)
"SELECT if(domain_renew_date <= '".$date."', 'domain_renew_date', 'hosting_renew_date') as greterdate
FROM `domains` as Domain
WHERE (`domain_renew_date` < '".$date."' AND `domain_renew_date` != '0000-00-00')
OR (`hosting_renew_date` < '".$date."' AND `hosting_renew_date` != '0000-00-00')
ORDER BY greterdate ASC"
这可能符合您的要求。
感谢。