mysql - 关于MySQL ORDER BY的问题

标签 mysql

我有一个名为 posts 的表,其中有两个名为 timestamp_addedtimestamp_edited 的字段。

我想按最新添加或编辑的帖子降序排列。

ORDER BY p.timestamp_added DESC, p.timestamp_edited DESC,没有给我我需要的东西。

我喜欢这样的东西:

ORDER BY IF p.timestamp_edited > 0 THEN p.timestamp_edited DESC ELSE p.timestamp_added DESC

我该怎么做?我尝试用谷歌搜索这个,但找不到我需要的东西。

最佳答案

未设置时timestamp_edited是否为NULL?

在这种情况下你可以这样做:

ORDER BY IFNULL(p.timestamp_edited, p.timestamp_added) DESC 

如果未设置时为0:

ORDER BY IF(p.timestamp_edited > 0, p.timestamp_edited, p.timestamp_added) DESC

关于mysql - 关于MySQL ORDER BY的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428104/

相关文章:

mysql - 用于匹配子查询的 SQL 查询

php - 如何在 php 查询中转义保留的 mysql 字?

MySQL选择具有最大ID并匹配其他条件的行

带子查询的 PHP PDO UPDATE 语句

mysql - 存储过程空错误

php - 使用 unix 选择上个月的行

php - 使用表名输入的最安全方法?

mysql - org.springframework.beans.factory.BeanCreationException : Error creating bean with name 'sessionFactory'

PHP SQL :can contents of a word document being split and then insert to database in single row each

mysql - 刷新数据库表迁移时出错