php - 按连续多个日期中最旧的日期排序

标签 php mysql sql

我的数据库中的每个客户都有自己的行。
对于每个客户,我都会保存他购买的产品以及他需要新产品时的情况。
但有时客户会有更多产品,例如 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/

相关文章:

javascript倒计时器与数据库中的sql时间?

php - 字符串中以逗号分隔的值到函数参数

mysql - Bookshelf(knex) - belongsToMany 关系不起作用

mysql - 如何只获取具有多个值的出现?

sql - 如何查找多列中的重复项?

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 无法对数据库执行查询

javascript - 使用 AJAX/PHP 让 HTML 按钮将数据插入 MySQL 数据库

Mysql游标参数

sql - 仅从 varchar 字段中选择单词的第一个字母