mysql - 如何按 created_date 和 updated_date 对数据进行排序
问题描述
我有 created_date、updated_date 和 updated_date 可以为空的数据。我正在尝试按 created_date 和 updated_date 对数据进行排序 如果数据得到了 updated_date 它将使用 updated_date 如果数据没有 updated_date 但 created_date > 其他数据 updated_date 它将首先出现
这是我使用“ORDER BY books
. display_updated
DESC , books
. display_created
DESC”的结果
updated_date 为空的数据属于。你能建议我吗?
解决方案
你可以使用coalesce()
ORDER BY COALESECE(updated_date, created_date)
我更喜欢这个功能,ifnull()
因为 coalesce 是 ANSI 标准,但你可以使用
ORDER BY IFNULL(updated_date, created_date)
这两种方法都测试是否updated_date
为空,如果为空,则返回created_date
,否则返回“updated_date”。以上两者都等同于 this case expression
,这是另一种选择:
order by case when updated_date IS NOT NULL then updated_date else created_date end
推荐阅读
- html - 我无法设法覆盖 CSS 中的宽度样式
- postgresql - POSTGRES:无法连接到服务器:连接被拒绝(0x0000274D/10061)
- javascript - 如何设置“最大值”HTML中的标签?
- azure - Azure databricks - 无法使用来自 datalake 存储 gen2 服务的 spark 作业读取 .csv 文件
- java - Log4j2 - 如何将消息和日志级别添加到 keyValuePair 值
- button - html.Button 在 Google colaboratory 中不适用于 JupyterDash
- ruby-on-rails - 如何在 Rails 6 中一次运行所有测试,包括系统测试?
- python - python3.9无法打印收据,windows10平台的escposprinter库
- javascript - VS Code 调试控制台如何访问闭包函数?
- amazon-web-services - 如何将 Aurora DB 实例复制到另一个现有实例