mysql中将字符123转变成1.2.3

news/2024/10/23 9:36:54/

具体业务需求:因为需求变更,之前存储数值型字符串,现需要将数值型转变为x.x.x

update mpc_mp_package a join (select(selectGROUP_CONCAT(SUBSTRING(mp_ver, number, 1) separator '.') as separated_stringfrom(select@i := @i + 1 as numberfrommpc_mp_package,(select@i := 0) as initwhere@i < length(mp_ver) and char_length(mp_ver)= 3) as numbers) as mp_ver,id
frommpc_mp_package where  char_length(mp_ver)= 3 ) b 
on a.id= b.id 
set a.mp_ver = b.mp_ver
where char_length(a.mp_ver)= 3 

具体而言,该查询语句使用了 GROUP_CONCAT() 函数和 SUBSTRING() 函数来将 mp_ver 字段按照一定的规则进行拆分和重新组合。其中,SUBSTRING() 函数用于提取 mp_ver 字段中的单个字符,GROUP_CONCAT() 函数用于按照指定的分隔符将这些字符连接起来形成新的字符串。

整个查询语句的逻辑如下:

  1. 先在 mpc_mp_package 表中筛选出所有 mp_ver 字段长度为 3 的记录。

  2. mp_ver 字段中的字符按照一定的规则进行拆分和重新组合,得到新的字符串。

  3. 将新的字符串和对应的 id 字段一起返回。

具体实现细节可以解读如下:

  1. 在内层查询中,通过 @i := @i + 1@i < length(mp_ver) 条件语句,生成一个数字序列,用于表示 mp_ver 字段中每个字符的位置。例如,如果 mp_ver 的值为 "1.0.8",则该内层查询会返回 [1,2,3,4,5]。

  2. 在外层查询中,使用 GROUP_CONCAT(SUBSTRING(mp_ver, number, 1) separator '.')mp_ver 字段中的字符连接起来,得到新的字符串。其中,SUBSTRING(mp_ver, number, 1) 表示提取 mp_ver 字段中第 number 个字符,separator '.' 表示使用 "." 作为分隔符将这些字符连接起来。

  3. 最终查询结果包括两个字段,一个是拼接后的字符串,另一个是对应记录的 id 值。

 


http://www.ppmy.cn/news/294997.html

相关文章

基于php+mysql的高校教材管理系统的设计与实现

着时代的进步,网络的应用已经相当普及,人们也认识到网络信息量大,传播方便快捷等特点,网上银行、网上商店、网上查分都应运而生。需求促进了技术的发展,而在这其中,PHP技术则因为可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理且简便易学而备受青睐,成为当前相当…

协众信息三个层面帮你快速理解ui设计

设计是一个非常大的概念&#xff0c;设计行业中包括许多设计方向&#xff0c;其中就有一个ui设计&#xff0c;ui设计也是近年来非常火爆的行业之一&#xff0c;下面我们跟随小编一起来了解一下什么叫ui设计的相关资料。   什么叫ui设计   UI其实是一个广义的概念&am…

Win2003 sp1 Enterprise Edition无法安装声卡驱动的解决。

下载Realtek_WDM_R262.exe安装提示需要KB901105 到Mircosoft 网站下载WindowsServer2003-KB901105-v3-x86-CHS.exe 安装&#xff0c;重启后安装Realtek驱动&#xff0c;打开TTplayer有声音。

解决Realtek声卡播放视频延迟几秒后才有声音的问题

个人的解决办法&#xff1a;在设备管理器中找到realtek的驱动&#xff0c; 选择更新驱动 选择通用软件 安装后重启&#xff0c;解决问题。 其他的解决方法&#xff1a;解决视频暂停后再次播放&#xff0c;前几秒钟会没有声音 - Polar_开心 - 博客园

Windows7声卡驱动不行怎么办

本文摘自&#xff1a;www.dedexitong.com 原文链接&#xff1a;http://www.dedexitong.com/html/1448.html 在安装Windows7系统时&#xff0c;有不少用户会遇到系统没有声音的问题。任务栏右下角的扬声器图标正常&#xff0c;点击使用也正常&#xff0c;但是就是没有声…

网卡5790c linux驱动,(支持所有硬件、无需连接宽带)e驱动 v5.21 WIN7 32bit专版驱动包...

e驱动 v5.21 win7 32bit专版驱动包 因为是我WIN764bit的&#xff0c;驱动不一样所以驱动软件的版本也就不一样不要在意 2012-5-17 21:51 上传下载附件 (56.12 KB)E驱动可以自动识别硬件型号对应安装驱动2012-5-17 21:51 上传下载附件 (126.29 KB)在封装系统的时候会自动安装驱动…

基于jsp+mysql+Spring+mybatis+Springboot的Springboot实现的就业信息管理平台

运行环境: 最好是java jdk 1.8&#xff0c;我在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以&#xff0c;如果编译器的版本太低&#xff0c;需要升级下编译器&#xff0c;不要弄太低的版本 tomcat服务器环…

win10 1903 1909 Realtek 声卡均衡器 调节失效 解决

机器&#xff1a;未来人类T5-skylake 声卡芯片型号&#xff1a;ALC892 —2020/6/10更新— 终于摆脱驱动自带均衡器了 改用开源的音效均衡器 Equalizer APO&#xff0c;再也不用管垃圾驱动了。 参见 https://blog.csdn.net/ONE_SIX_MIX/article/details/106549982 —2019/11/1…