mysql、mybatis中SORT

SORT排序

根据数据表sys_series中HOT(int类型)进行升序排列:

  • 原来的数据库中存储:
    初始
  • 排序
# 结果是HOT字段为null的所有数据都排在最前面,不为null的数据按升序排列
SELECT * FROM sys_series ORDER BY HOT;

直接sort字段升序

# 结果是HOT字段为null的所有数据都排在最后面,不为null的数据按数据库中原本的先后顺序排列
SELECT * FROM sys_series ORDER BY isnull(HOT);

isnull

# 结果是HOT字段为null的所有数据都排在最后面,不为null的数据按升序排列
SELECT * FROM sys_series ORDER BY isnull(HOT), HOT;

null排在最后面升序

# 结果是HOT字段为null的所有数据都排在最前面,不为null的数据按升序排列
SELECT * FROM sys_series ORDER BY HOT, isnull(HOT);

先排字段
最后一种相当于第一种。因为对于ORDER BY排序的优先级是从前往后,先按第一个order by的字段进行排序,如果遇到了两个相同的,则按照第二个排列,eg:

# 先按NEED的值升序排列,若NEED值相等,则根据HOT的值升序
SELECT * FROM sys_series ORDER BY NEED, HOT;

两个字段排序

# 先按NEED的值升序排列,若NEED值相等,则根据HOT的降序
SELECT * FROM sys_series ORDER BY NEED, HOT DESC;

两字段排序

Mybatis

List<SysSeries> getLike();
<select id="getLike" resultType="java.util.List">SELECT *    FROM sys_series    ORDER BY ISNULL(HOT), HOT
</select>
报错

The error occurred while handling results### SQL: SELECT * FROM sys_series ORDER BY ISNULL(HOT), HOT### Cause: java.lang.UnsupportedOperationException

原因

resultType配置错误,返回的结果为List,所以resultType应该配置为实体类的路径:resultType=“com.harmony.supreme.modular.series.entity.SysSeries”,eg:

List<String> getAllIds();
<select id="getAllIds" resultType="java.lang.String"></select>
SysSeries selectById(String id);
<select id="selectById" resultType="com.harmony.supreme.modular.series.entity.SysSeries"></select>
List<Map<String, Object>> countByIdList(@Param("idList") List<String> idList);
<select id="countByIdList" resultType="java.util.Map"></select>

问答

根据 int 类型的字段 SORT 进行升序排列,如果SORT值为null空,则按创建时间升序排列:

select * from table_name ORDER BY ISNULL(SORT), SORT,CREATE_TIME
select * from table_name where (create_user = 'xxx') ORDER BY ISNULL(SORT), SORT,CREATE_TIME
List<TableName> get(String createUser);
<select id="get" parameterType="java.lang.String" resultType="com.harmony.supreme.modular.entity.tableName ">SELECT *    from table_name WHERE CREATE_USER = #{createUser}    ORDER BY ISNULL(SORT), SORT, CREATE_TIME
</select>

把createUser等于eq的条件改为id属于in的条件:

List<tableName> getByLink(List<String> ids);
<select id="getByLink" parameterType="java.util.List" resultType="com.harmony.supreme.modular.entity.tableName ">SELECT *from table_tableWHERE ID IN<foreach collection="list" item="id" separator="," open="(" close=")">#{id}</foreach>ORDER BY ISNULL(SORT), SORT, CREATE_TIME
</select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

春节假期:思考新一年的发展思路

春节假期是人们放松身心、享受家庭团聚的时刻&#xff0c;但除了走亲戚、玩、吃之外&#xff0c;我们确实也需要思考新的一年的发展思路。以下是一些建议&#xff0c;帮助您在春节假期中为新的一年做好准备&#xff1a; 回顾过去&#xff0c;总结经验&#xff1a;在春节期间&a…

C语言printf函数详解..

1.printf函数解析 前面我们有讲过printf函数的格式为&#xff1a; printf(“占位1 占位2 占位3……”, 替代1, 替代2, 替代3……); 今天我们进一步深入的解析一下这个函数 2.printf函数的特点 1.printf函数是一个变参函数(即参数的数量和类型都不确定) 2.printf函数的第一个…

使用 FFmpeg 将视频转换为 GIF 动画的技巧

使用 FFmpeg 将视频转换为 GIF 动画 FFmpeg 可以将视频转换为 GIF 动画&#xff0c;方法如下&#xff1a; 1. 准备工作 确保您已经安装了 FFmpeg。 熟悉 FFmpeg 的命令行使用。 了解 GIF 动画的基本知识。 2. 基本命令 ffmpeg -i input.mp4 output.gif 3. 参数说明 -i in…

JPEG图像格式加速神经网络训练--使用DCT训练CNN

JPEG图像格式加速神经网络训练 JPEG图像格式加速神经网络训练工作原理DCT系数与JPEG直接利用DCT系数阶段 1: 数据准备步骤 1: 读取JPEG文件结构步骤 2: 提取量化表和Huffman表步骤 3: 解析图像数据步骤 4: 反量化步骤 5: 获取DCT系数 阶段 2: 输入处理预处理 1: 正规化&#xf…

解决Spring Boot Configuration Annotation Processor not configured的问题

1. 问题描述 使用ConfigurationProperties()注解时&#xff0c;IDE突然爆出警告Spring Boot Configuration Annotation Processor not configured&#xff0c;好在不影响项目运行&#xff0c;强迫症患者表示很不舒服。 2. 问题解决 1. 引入configuration-processor的依赖 <…

bert-vits2本地部署报错疑难问题汇总

环境&#xff1a; bert-vits2.3 win 和wsl 问题描述&#xff1a; bert-vits2本地部署报错疑难问题汇总 解决方案&#xff1a; 问题1: Conda安装requirements里面依赖出现ERROR: No matching distribution found for opencc1.1.6 解决方法 需要在 Python 3.11 上使用 Op…

巴尔加瓦算法图解:算法运用(上)

目录 树反向索引傅立叶变换 并行算法MapReduce函数 树 如果能将用户名插入到数组的正确位置就好了&#xff0c;这样就无需在插入后再排序。为此&#xff0c;有人设计了一种名为二叉查找树(binary search tree)的数据结构。 每个node的children 都不大于两个。对于其中的每个…

认识webSocket长连接

1&#xff0c;webSocket是什么 WebSocket 是HTML5开始提出的一种在单个 TCP 连接上进行全双工通讯的协议。用于在web端实现长连接的需求&#xff0c;如在线聊天室&#xff0c;弹幕&#xff0c;实时资讯更新等等 2&#xff0c;什么情形下需要使用websocket? 短链接是通过客户…

openGauss学习笔记-217 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-内存

文章目录 openGauss学习笔记-217 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-内存217.1 查看内存状况217.2 性能参数分析 openGauss学习笔记-217 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-内存 获取openGauss节点的CPU、内存、I/O和网络资源使用情况&…

二分查找算法案例

折半查找&#xff08;二分查找&#xff09;是一种常见且高效的查找算法&#xff0c;适用于有序数组。其基本思想是首先将数组按照中间位置折半&#xff0c;然后判断待查找元素与中间元素的大小关系&#xff0c;从而确定待查找元素在左半部分还是右半部分。通过不断折半和判断&a…

使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU

本节实现一个最简的 CPU &#xff0c;最终能够解析 add 和 addi 两个指令。如果对计算机组成原理已经有所了解可以跳过下面的内容直接看代码实现。 完整代码在这个分支&#xff1a;lab1-cpu-add&#xff0c;本章节尾有运行的具体指令。 1. 冯诺依曼结构 冯诺依曼结构是现代计…

怎么把视频音乐提取成mp3?分享详细工具和方法!

在数字媒体时代&#xff0c;音乐已经成为我们生活中不可或缺的一部分。有时候&#xff0c;我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐&#xff0c;想要将其保存为MP3格式以便随时随地聆听。那么&#xff0c;如何从视频中提取音乐并转换为MP3格…

python+flask+django医院预约挂号系统6nrhh

医院预约挂号系统主要有管理员、用户和医生三个功能模块。以下将对这三个功能的作用进行详细的剖析。 技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django/flask Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5.7 数据库工具…

【Spring框架】Spring事务同步

目录 一、什么是Spring事务同步 二、 事务同步管理器 2.1 TransactionSynchronizationManager事务同步管理器 2.1.1 资源同步 2.1.2 事务同步 2.1.3 总结 三、事务同步管理器保障事务的原理 四、spring事务为何使用TransactionSynchronizationManager spring源码实现 …

力扣_字符串5—解码方法

题目 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; ‘A’ -> “1”‘B’ -> “2”…‘Z’ -> “26” 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法&#xff09;。例如&…

第二十七天| 39. 组合总和 、40.组合总和II、131.分割回文串

Leetcode 39. 组合总和 题目链接&#xff1a;39 组合总和 题干&#xff1a;给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序…

【网络】:序列化和反序列化

序列化和反序列化 一.json库 二.简单使用json库 前面已经讲过TCP和UDP&#xff0c;也写过代码能够进行双方的通信了&#xff0c;那么有没有可能这种通信是不安全的呢&#xff1f;如果直接通信&#xff0c;可能会被底层捕捉&#xff1b;可能由于网络问题&#xff0c;一方只接收到…

JavaScript中的for循环和map方法

JavaScript中的for循环和map方法 在JavaScript中&#xff0c;循环是一种常见的编程技巧&#xff0c;用于重复执行一段代码。for循环和map方法都可以用于循环操作&#xff0c;但它们在语法和应用场景上存在一些区别。本文将详细讲解JavaScript中的for循环和map方法&#xff0c;以…

【Linux技术宝典】Linux入门:揭开Linux的神秘面纱

文章目录 官网Linux 环境的搭建方式一、什么是Linux&#xff1f;二、Linux的起源与发展三、Linux的核心组件四、Linux企业应用现状五、Linux的发行版本六、为什么选择Linux&#xff1f;七、总结 Linux&#xff0c;一个在全球范围内广泛应用的开源操作系统&#xff0c;近年来越来…

c++中的模板(2)-- 函数模板(及模板函数)

目录 函数模板: 语法: 分析: 函数调用: 怎么实现: 模板函数: 函数模板: 其实就是在函数中使用模板&#xff0c;我们前面的swap函数就是一个函数模板。 语法: template <typename 类型名1,typename 类型名2 ...> template <typename T> void Sw…