对于mysql的字符串属性倒序如何做?

news2024/12/24 8:45:23

背景:

对于新闻排行榜中的hot_value 属性定义的时候使用了Varchar类型,代码排序时,往往是乱的:

待排序数据:1,2,3,40,300,1000

希望排序为:1000,300,40,3,2,1

结果排序为:40,300,3,2,1000,1

解决方案:

SQL:

order by length(hot_value) desc, hot_value desc;
order by CONVERT(hot_value, UNSIGNED) desc
order by CAST(hot_value as UNSIGNED) desc
order by hot_value + 0 desc

以上都可以达到如下结果:

 Mybatis Plus:

List<T> list = xxxService.list(new QueryWrapper<T>().orderByDesc("length(hot_value) DESC,(hot_value)"));
注:一定要在第一个条件后也手动写上排序规则,否则orderByDesc只会对最后一个条件追加生效!!

其他sql的方式相同写法嵌套即可。

延伸问题:

如果需要排序的属性有中文怎么办?

待排序数据:中文_1,中文_2,中文_3,中文_40,中文_300,中文_1000

注:这里只是举例说明,'中文_'可以是任意的中文,而需求是按照后边的数字排序

 REGEXP_SUBSTR函数

在MySQL 8.0及以上版本中,我们可以使用 REGEXP_SUBSTR() 函数来提取字符串中的数字部分。这个函数允许我们使用正则表达式来指定我们想要匹配的模式。在这个例子中,我们使用正则表达式 \\d+ 来匹配一个或多个数字。

ORDER BY CAST(REGEXP_SUBSTR(hot_value, '\\d+') AS UNSIGNED);

     可能有人质疑,使用函数排序会有影响性能等问题。我们要灵活根据线上具体的情况,不同问题不同的解决方案,这里仅仅是一种解题思路。

      你也可以尝试修改数据库 varchar为 int类型,如果你可以直接操作线上数据库;或者数据库几百万数据,公司愿意让你动的前提下。

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

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

相关文章

vulhub:Apache解析漏洞CVE-2017-15715

Apache HTTPD是一款HTTP服务器&#xff0c;它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个换行解析漏洞&#xff0c;在解析PHP时&#xff0c;1.php\x0A将被按照PHP后缀进行解析&#xff0c;导致绕过一些服务器的安全策略。 #启动靶机 cd /Vulnhub/vulhub-mast…

武汉流星汇聚:亚马逊平台引领中国卖家,外贸经济再添强劲动力

在全球电商的浪潮中&#xff0c;亚马逊平台凭借其卓越的全球影响力、先进的运营体系和庞大的用户基础&#xff0c;成为了中国卖家拓展国际市场的重要桥梁。近年来&#xff0c;中国卖家在亚马逊上的快速发展&#xff0c;不仅为中国企业带来了丰厚的利润&#xff0c;更为中国外贸…

经典预测控制算法:动态矩阵控制(DMC)下篇——仿真实验(含Matlab源码)

目录 前文链接基础DMC算法Matlab源码代码解析仿真结果展示 参数对性能的影响参数P对性能影响Matlab源码仿真结果 参数M对性能影响Matlab源码仿真结果 参数q对性能影响Matlab源码仿真结果 参数lamda对性能影响Matlab源码仿真结果 讨论 算法改进效果验证阶梯式动态矩阵控制与基础…

分散存储的艺术:探索主流数据库分库分表解决方案

摘要&#xff1a; 随着大数据时代的到来&#xff0c;单一数据库系统越来越难以满足日益增长的数据存储和处理需求。分库分表技术应运而生&#xff0c;成为解决这一问题的有效手段。本文将深入探讨主流的数据库分库分表中间件&#xff0c;分析它们的设计理念、实现原理以及应用场…

企业定制AI智能名片微信小程序在私域流量运营中的应用与策略

摘要&#xff1a;随着2022年私域运营市场步入冷静期&#xff0c;企业逐渐从盲目模仿向精准化、个性化的运营模式转变。在这一背景下&#xff0c;企业定制AI智能名片微信小程序凭借其独特的智能化、便捷化特性&#xff0c;成为企业构建私域流量池、深化用户关系、实现高效转化的…

问答:OKR入门

通过使命、愿景和价值观来创建正确的公司文化&#xff0c;以及如何开始使用OKR。以下是对您提出的问题的回答。 让团队加入的最佳方式是什么&#xff1f; 这需要高管的认同和领导力。对于中小型企业来说&#xff0c;从高管团队开始。对于大公司来说&#xff0c;可以在单个业务部…

spring boot + vue3 接入钉钉实现扫码登录

1&#xff1a;准备工作 1.1&#xff1a;进入钉钉开放平台创建开发者应用。应用创建和类型介绍&#xff0c;参考下方。 应用类型介绍 - 钉钉开放平台 (dingtalk.com) 应用能力介绍 - 钉钉开放平台 (dingtalk.com) 扫码登录第三方网站 - 钉钉开放平台 (dingtalk.com) 1.2&…

DLT相机标定算法

本教程介绍了直接线性变换 (DLT)&#xff0c;这是一种用于解决以下类型方程组的通用方法&#xff1a; 这种类型的方程经常出现在射影几何中。一个非常重要的例子是场景中的 3D 点与它们在相机图像平面上的投影之间的关系。这就是为什么我们要使用此设置来激发 DLT 的使用。 NSD…

二百五十二、OceanBase——Linux上安装OceanBase数据库(二):新用户配置ssh免密登录

一、目的 在OBD页面上部署OceanBase数据库时发现&#xff0c;需要把新用户也要配置ssh免密登录 二、前提 root用户已经设置免密登录 三、配置步骤 1 切换到新用户obadmin [roothurys23 ~]# su obadmin 2 执行命令生成秘钥文件 [obadminhurys23 oceanbase]$ ssh-keygen …

动态规划:基础篇

目录 1. 斐波那契数(LeetCode509) 解法1&#xff1a;动态规划(基础版) 解法2&#xff1a;动态规划(优化版) 2. 爬楼梯(方案个数)(斐波那契数列扩展)(LeetCode70) 解法1&#xff1a;动态规划(基础版) 解法2&#xff1a;动态规划(优化版) 3. 爬楼梯(最小花费)(LeetCode746…

品牌进行网络控价的原因和方法

品牌的控价管理是一项关乎其生存与发展的关键举措。在当今竞争激烈的市场环境中&#xff0c;价格的稳定与合理不仅影响着品牌的形象和声誉&#xff0c;更是直接关系到品牌的市场份额和盈利能力。 那些不重视控价管理的品牌&#xff0c;往往会陷入一片混乱。参差不齐的价格使得消…

Delphi5实现文件拷贝程序

效果图 opendialog、savedialog组件 对于类似TOpenDialog和TSaveDialog的功能&#xff0c;在Delphi 5中&#xff0c;你可能需要这样做&#xff1a; 查找或创建&#xff1a;首先&#xff0c;在Delphi 5的组件面板中查找是否有现成的文件对话框组件&#xff08;拖拉组件下来到f…

【通俗理解】概率图模型——从概率到图形的直观映射

【通俗理解】概率图模型——从概率到图形的直观映射 概率与图形的类比 你可以把概率看作是一个“烹饪配方”&#xff0c;它告诉我们每个成分&#xff08;事件&#xff09;出现的可能性。而图形则是一个“食谱的图表”&#xff0c;它直观地展示了这些成分之间的关系和依赖。 概率…

深入探索:GPT系列模型揭秘

Transformer发展 之 GPT系列模型结构 我按照Transformer的发展路线来学习入门 Transformer–BERT—GPT—DETR—ViT—Swin ViT / DeiT 上一篇写了Transformer&#xff0c;听了李宏毅和李沐老师的课一下子就懂了&#xff0c;今天学习GPT-123 核心思想&#xff1a; GPT和BERT的…

服务器数据恢复—SAN环境下LUN被重复映射导致写操作不互斥的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台存储中有一组由6块硬盘组成的RAID6&#xff0c;划分为若干LUN&#xff0c;MAP到不同业务的SOLARIS操作系统服务器上。 服务器存储故障&#xff1a; 由于业务变化需要增加一台服务器&#xff0c;在存储在线的状态下将该存储中的某个LUN映…

打造沉浸式展厅空间,哪些高科技手段必不可少?

在人生的旅途中&#xff0c;我们或许会踏遍千山万水&#xff0c;将大地的壮丽景色尽收眼底。然而&#xff0c;总有一些地方&#xff0c;如同深邃的海底两万里&#xff0c;或是浩瀚无垠的宇宙银河&#xff0c;遥不可及&#xff0c;这时我们便可以在展厅的沉浸式空间中&#xff0…

Postman请求问题 connect ECONNREFUSED 127.0.0.1:80解决方法

问题描述&#xff1a; 解决方法&#xff1a; &#xff08;1&#xff09;点击file-settings &#xff08;2&#xff09;点击Proxy&#xff0c;并将右边的Use the system proxy 取消选中 &#xff08;3&#xff09;勾选use custom proxy configuration 这个8080是默认的&#xf…

MySQL学习(17):SQL编程:存储过程

1.什么是存储过程 存储过程是事先经过编译并存储在数据库中的一段 SQL语句的集合。 存储过程的特点&#xff1a; &#xff08;1&#xff09;封装&#xff0c;复用 &#xff08;2&#xff09;可以接收参数&#xff0c;可以返回数据 2.存储过程语法 2.1创建 create procedu…

查看Keepalived 的 VIP 有效、高可用、单播和组播

VIP&#xff08;虚拟 IP&#xff09; VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09; 验证 VIP 是否有效 1、没有部署之前&#xff0c;PING要设置的VIP地址&#xff0c;不通 ping 10.119.108.602、部署之后&#xff0c;所有节点进行PING要设置的VIP地址&a…

代码实现yolov3主干网络,可以直接运行

1. 主干网head版本1 import torch from torch import nn import torch.nn.functional as F class ConvBnLeakRelu(nn.Module):def __init__(self,in_ch,out_ch,k3,s1):super().__init__()self.layernn.Sequential(nn.Conv2d(in_ch, out_ch, kernel_sizek, paddingk // 2,stride…