最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Mysql实现null值排在最前/最后的方法示例

来源:动视网 责编:小采 时间:2020-11-09 20:20:56
文档

Mysql实现null值排在最前/最后的方法示例

Mysql实现null值排在最前/最后的方法示例:前言 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。
推荐度:
导读Mysql实现null值排在最前/最后的方法示例:前言 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。


前言

我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

为了处理这种情况,MySQL提供了三大运算符:

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
  • 关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。

    在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。

    MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

    最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造。

    oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后。

    oracle方法:

    null值排在最前

    select * from A order by a desc null first

    null值排在最后

    select * from A order by a desc null last

    不过迁到Mysql的话,mysql并没有提供类似函数,所以要怎么实现?

    下面给出解决方法:

    null值排在最后,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0

    select * from A order by IF(ISNULL(a),1,0),a desc

    null值排在最前,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0

    select * from A order by IF(ISNULL(a),0,1),a desc

    如果mybatis里需要oracle和Mysql版本的,或者可以从后台传个数据表版本标识dbType,或者直接用mybatis的_databaseId方法。

     <if test="dbType=='oracle'">
     order by c.create_date desc nulls last
     </if>
     <if test="dbType=='mysql'">
     order by IF(ISNULL(c.create_date),1,0), c.create_date desc
     </if>

    总结

    文档

    Mysql实现null值排在最前/最后的方法示例

    Mysql实现null值排在最前/最后的方法示例:前言 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。
    推荐度:
    标签: 的方法 最后 示例
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top