mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名

这篇具有很好参考价值的文章主要介绍了mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名

默认情况下,MySQL将null算作最小值。如果想要手动指定null的顺序,可以这样处理:

  1. 将null强制放在最前

//null, null, 1,2,3,4(默认就是这样)
SELECT * FROM 表名 ORDER BY if(isnull(字段名),0,1),字段名 ASC
//null, null, 4,3,2,1
SELECT * FROM 表名 ORDER BY if(isnull(字段名),0,1),字段名 DESC

  1. 将null强制放在最后

//1,2,3,4,null,null
SELECT * FROM 表名 ORDER BY if(isnull(字段名),1,0),字段名 ASC

// 4,3,2,1,null,null
SELECT * FROM 表名 ORDER BY if(isnull(字段名),1,0),字段名 DESC

  1. 解释

以 if(isnull(字段名),0,1) , 字段名 ASC 为例文章来源地址https://www.toymoban.com/news/detail-477337.html

  • 将该字段根据是否为 null 值分成两部分,值为 null 行相当于得到了一个隐含的排序属性0,值为非 null
    的行相当于得到了一个隐含的排序属性1。
  • 先根据这一隐含属性进行排列,所以排序字段为null的那些行(隐含排序属性)会在最前。然后其他非null的行按照ASC或者DESC排序

到了这里,关于mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle或者MySQL 将一个表中的数据插入到另外一个表中(表名不同,表字段也可能不同)

    在Oracle或者MySQL中,如何将一个表中的数据插入到另外一个表中(表名不同,字段名可能也不同),以Oracle数据库为例。 (1)创建一个包含所需字段的新表 (2)使用INSERT INTO SELECT将数据从旧表复制到新表。在SELECT语句中,选择需要从旧表中复制的字段。

    2024年02月15日
    浏览(34)
  • 使用枚举 代替简单工厂的switch或者if else

    我们常常会有这样的需求,根据传入参数的不同调用不同的方法,返回不同的值,这个时候大家就会想到使用策略模式,但是使用大量的switch或者if else 代码会很不优雅,下边我来说两个优雅的实现方式 一,枚举 首先写一个公共接口,用来定义公共的实现方法     2.写一个枚

    2024年02月09日
    浏览(28)
  • sql语句两个字段合并或者两个字段拼接显示

    mysql 使用 concat函数 小栗子: sql server 连接字段,直接使用 + 号,和java字符串拼接一样 小栗子: oracle 数据库 可以使用 || ,也可以使用 concat函数 小栗子: ACCESS数据库连接字段,使用 + 号,他与sql server 一样的 小栗子:

    2024年02月11日
    浏览(34)
  • 用策略模式加工厂模式优化多重if-else或者switch代码

    情景:通过不同的出行方式和数量拿到不同的减碳量 代码从controller开始贴 是为了更贴近真实场景 原始代码 controller: 枚举类: TravelEnum: service: 改进: controller: swevice: 其中 GreenTravelModeService 是一个接口: GreenTravelModeService 有三个实现类,分别代表 三种不同出行方式获得减碳的

    2024年02月03日
    浏览(32)
  • mybatisplus在新增或者修改时设置字段自动填充

    1、需要实现元对象字段填充控制器抽象类,如下代码 fieldName要注意对应的生成的实体字段,不是数据库对应字段,否则无效 2、在生成的实体字段,@TableField增加fill填充,并写入填充的时机是新增还是修改 在此过程中可能会出现的错: 修改或者插入的时候报类型无效,jav

    2024年01月17日
    浏览(44)
  • HIVE获取json字段特定值(单个json或者json数组)

    1.获取单个json字符串里的某一特定值 函数:get_json_object(单个json,‘$.要获取的字段’) 示例: 代码:SELECT get_json_object(‘{“NAME”:“张三”,“ID”:“1”}’,‘$.NAME’) as name; SELECT get_json_object(‘{“NAME”:“张三”,“ID”:“1”}’,‘$.NAME’); 2. json_tuple 语法:json_tuple(json_string,

    2024年02月08日
    浏览(31)
  • Java后端大写字段传到前端,或者使用postman调用后,返回变为小写

    比如,我有一个类,然后该类中有一个字段 默认使用的是Jackson解析。Jackson在解析返回的json字符串时,全部大写字段被转为小写了,首字母如果是大写也会被转为小写 我在传输给前端,或者使用postman调用,或者存储到redis的时候,发现该字段不是YTD,而是ytd,没办法满足我

    2024年02月12日
    浏览(28)
  • 【Java】制作pdf模板使用后端程序填充字段生成pdf或者图片

    自行下载安装; 打开pdf文件,表单-添加或编辑域 添加文本域,调整大小,可以编辑域的名字,默认fill_1这种名字。域鼠标右键-属性,可以调整字体大小等样式,编辑好还可以锁定; 编辑好保存,这个pdf文件就可以当模板使用了; 防止中文乱码,需要在网上下载字体ttf文件

    2024年01月21日
    浏览(37)
  • Java lamda对List<JSONObject>里多个动态属性字段进行动态的降序或者升序

            最近做到一个需求,需要把业务侧返回的数据(格式为ListJSONObject),然后根据前端传来的排序字段、以及升降序属性来排序并返回给前端。要对ListJSONObject中的多个属性字段进行动态的升序或降序排序,我们可以根据需要使用Comparator.comparing()方法和Comparator.reverseOrd

    2024年02月15日
    浏览(33)
  • Java 字段 Stream 排序

    这篇博客简单记录下 Java 字段 Stream 排序常用方式,欢迎阅读斧正。 用到的类如下: 准备数据: 升序使用 .sorted(Comparator.Comparing(YourClass::Class\\\'s Field) 就行,降序使用 .sorted(Comparator.Comparing(YourClass::Class\\\'s Field, Comparator.reverseOrder()) 。 输出: 利用的是 thenComparing() :升序 thenCom

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包