Mysql不定次拆分substring

编程入门 行业动态 更新时间:2024-10-23 15:28:40

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=Mysql不定次拆分substring"/>

Mysql不定次拆分substring

"变速器:跳挡;转向系统:失灵;制动系统:刹车失灵;车身附件及电器:行车安全辅助系统故障"

实际开发中,偶尔会需要处理:将一个字段,根据指定字符串进行拆分,且拆分次数是不固定的情况。

如上是一个实际数据,这里演示处理上面的字符串,将数据行转列,并携带其他字段信息,以便大家做其他后续处理

数据表结构大致如下:

codedatepinpaichexiproblem class
5592772021-01-01广汽丰田汉兰达变速器:跳挡;转向系统:失灵;制动系统:刹车失灵;车身附件及电器:行车安全辅助系统故障

此处问题字段中,数据是按照“分类:内容;分类:内容;……”的形式:

① 采用冒号“:”分隔开问题和内容

② 采用分号“;”分隔开多个问题

所以此处的解决思路是:

① 先按照分号“;”,拆开多个问题为数组,并将数组实现行转列,形成多条记录;

② 再按照冒号“:”,区分开“问题”和“内容”,分开两个字段显示,即可实现效果,做其他后续分析或应用

在拆分多个问题并行转列的实现上,mysql数据库可能没有其他数据库那么方便,所以需要借助mysql库中的mysql.help_topic表来辅助实现,那么根据实际场景拆分sql是这样的:

SELECTdate,pinpai,chexi,substring_index( NAME, ":", 1 ) class ,substring_index( NAME, ":", -1 )  cont
FROM(
SELECT DISTINCTdate,pinpai,chexi,substring_index( substring_index( a.problem_class, ';', b.help_topic_id + 1 ), ';',- 1 ) NAME 
FROMspiderdata_12365_car_complain aJOIN mysql.help_topic b ON b.help_topic_id < ( length( a.problem_class ) - length( REPLACE ( a.problem_class, ';', '' ) ) + 1 ) 
WHEREcode = '559277' ) res

sql查询结果为:

如上,就可以实现根据指定字符串,对字段进行拆分处理,并实现行专列、其他字段信息携带的效果。

实际开发时,用户也可以根据实际情况,也可以批量处理,不拘泥于1个code。

更多推荐

Mysql不定次拆分substring

本文发布于:2024-03-06 07:35:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714742.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Mysql   substring

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!