我的数据库中的每个客户都有自己的行。
对于每个客户,我都会保存他购买的产品以及他需要新产品时的情况。
但有时客户会有更多产品,例如 2-3 个。
一些行的示例:
id | customername | product1 | dateneednew1 | product2 |dateneednew2
1. | Jacob ....... | a product| 2017-11-18 ... | a product| 2016-12-01
2. | Anna ........ | a product| 2016-12-10 ....| a product| 2017-10-10
2. | Peter ....... | a product| 2016-12-05 ... | a product| 2017-08-10
现在我想按所有“dateneednew1”-“dateneednew2”中最旧的日期进行排序...,因此在示例中雅各布是第一个,彼得第二个,安娜最后一个。
最佳答案
排序依据 -
least(dateneednew1,dateneednew2)
如果列可以包含 NULL -
least(coalesce(dateneednew1,'3000-01-01'),coalesce(dateneednew2,'3000-01-01'))
如果列可以包含“0000-00-00”作为默认日期(糟糕的设计)-
least(coalesce(nullif(dateneednew1,'0000-00-00'),'3000-01-01'),coalesce(nullif(dateneednew2,'0000-00-00'),'3000-01-01'))
关于php - 按连续多个日期中最旧的日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682031/