`
start_p
  • 浏览: 66880 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

mysql一个字段为空时使用另一个字段排序

 
阅读更多

表中有两个日期字段createDate,updateDate。其中updateDate可以为空,要求使用updateDate排序,如果updateDate为空则使用createDate排序,结果要顺序排下来。

    按照常规方法:

select * from table order by update desc

 这样的结果是为空的数据排在了最下面,不符合要求。

  方法二:

select * from table order by updateDate desc, createDate desc

 这样排的结果是先按updateDate排序,updateDate为空的排在最下面,然后按createDate排序,这样也不符合要求。

  方法三:

select * from table order by IFNULL(updateDate, createDate) desc

 这种排序的结果是正确的,用ifnull函数判断updateDate如果为空的话就使用createDate排

 

分享到:
评论

相关推荐

    mysql 查询表中多少个字段

    在MySQL数据库中,了解一个表包含多少个字段是非常重要的基础操作之一。这不仅有助于数据库管理员更好地管理数据结构,还能够帮助开发人员更准确地编写SQL查询语句。本文将详细介绍如何使用MySQL来查询表中的字段...

    导出 MySQL数据库表结构word设计文档,一键连接数据库,直接导出库表结构、字段解析、自动排序

    导出 MySQL数据库表结构word设计文档,一键连接数据库,直接导出库表结构、字段解析、自动排序 导出 MySQL数据库表结构word设计文档,一键连接数据库,直接导出库表结构、字段解析、自动排序 导出 MySQL数据库表结构...

    mysql如何根据汉字首字母排序

    代码如下: select areaName from area order by convert(areaName USING gbk) COLLATE gbk_... 您可能感兴趣的文章:mysql的中文数据按拼音排序的2个方法mysql如何按照中文排序解决方案MySQL按照汉字的拼音排序简单实例

    MySQL优化篇:排序分组优化.pdf

    例如,如果有一个复合索引idx_age_deptid_name,它首先包含age列,那么在使用where条件过滤age列时,排序操作就可以使用该索引。然而,如果where条件中age列没有过滤条件,只有排序操作时,就无法利用索引进行排序。...

    mysql 按中文字段排序

    如果这个问题不解决,那么MySQL将无法实际处理中文。... 如果你使用源码编译MySQL,可以编译MySQL时使用 –with–charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了(默认的是latin1)。也可以用 extra-char

    MySQL中Order By多字段排序规则代码示例

    总结来说,MySQL的`ORDER BY`语句允许对查询结果进行多字段排序,先按照第一个字段排序,如有重复值,则按照后续字段继续排序。理解这一点对于优化SQL查询和确保数据按预期排列至关重要。在实际应用中,应根据具体...

    解决Hibernate中MySQL的中文排序

    例如,如果我们有一个名为`Article`的实体类,其中包含一个`title`字段,我们可以使用`@org.hibernate.annotations.OrderBy`注解来指定排序规则: ```java @Entity public class Article { @Id private Long id; ...

    MySQL中按照多字段排序及问题解决

    在MySQL中,当我们需要根据不止一个字段对结果集进行排序时,就可以使用多字段排序。这通常通过在`ORDER BY`子句中列出多个字段及其排序顺序(升序`ASC`或降序`DESC`)来实现。例如,如果有一个包含产品信息的表,...

    使用SQL实现的冒泡排序算法 mysql数据库

    为了在一个实际的MySQL环境中实现冒泡排序,你可能需要将数据存储在临时表中,并使用多个查询和更新语句来模拟冒泡排序的过程。但这将非常复杂且效率低下,通常不建议这样做。 如果你真的需要在数据库中执行排序...

    MySQL 按指定字段自定义列表排序的实现

    在MySQL数据库中,排序是SQL查询的一个重要组成部分,通常我们使用`ORDER BY`子句来对查询结果进行升序或降序排列。然而,当排序顺序不遵循默认的升序或降序规则,而是需要按照特定的自定义列表进行排序时,我们可以...

    mysql实现根据多个字段查找和置顶功能

    当需要根据单一字段排序时,可以使用`ORDER BY`子句,例如: ```sql SELECT * FROM `TABLE_NAME` ORDER BY `Field`; ``` 这里的`Field`是你想要按照其值进行排序的字段名。默认情况下,排序是升序(ASC)的,但你...

    【EXPLAIN】“type”字段详解之MySQL官方文档翻译

    - **特点**: 这种连接方式是 `const` 类型的一个特例,由于只有一条记录,因此速度极快。 - **应用**: 如果表中确实只有一条记录,且这个表是通过主键或唯一索引与常量值匹配,则可以使用。 **2. const** - **定义...

    mysql查询优化之索引优化

    - **复合索引**:如果一个查询涉及多个列,可以创建复合索引,其中列的顺序至关重要,应将最常用于筛选的列放在前面。 - **NULL值与索引**:对于包含NULL值的列,B-Tree索引可能会降低性能,因为NULL在索引中被视为...

    mysql安装和使用

    在这个例子中,我们看到有一个名为"mysql-5.5.39-winx64.msi"的文件,这表明它是一个适用于Windows操作系统的MySQL安装程序,版本为5.5.39。安装过程通常包括以下步骤: 1. 双击msi文件启动安装向导。 2. 阅读并...

    MySql 按时间段查询数据方法(实例说明)

    在这种情况下,如果时间字段已经存储为日期格式,可以直接使用 `curdate()` 函数进行比较。以下是查询当天数据的SQL语句示例: ```sql SELECT * FROM `table` WHERE DATE(时间字段) = CURDATE(); ``` 这条语句...

    MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    `:向`bulletin`表中添加一个新字段`citycode`,数据类型为`VARCHAR(6)`,非空且默认值为0。 4. **设置字符编码**: - 在创建数据库时设置编码:`CREATE DATABASE test CHARACTER SET utf8;` - 在创建表时设置...

    MySQL之聚合查询、分组和排序

    排序是按照一个或多个列的值对结果集进行排序的过程。MySQL中的`ORDER BY`子句用于实现这一目的。 - **基本用法**: - `SELECT column_name(s) FROM table_name ORDER BY column_name ASC|DESC;` - 示例:按成绩...

Global site tag (gtag.js) - Google Analytics