一个Mysql字符串拆分替换拼接截取的笔记

本文探讨了SQL中用于字符串处理的SUBSTRING_INDEX和LEFT函数,讲解如何通过它们进行字符串拆分和获取指定索引的字符。示例展示了如何在不使用嵌套的情况下定位和提取字符串中的特定部分,以及如何利用数据库表帮助拆分和展示字符串内容。这些技巧对于数据库管理和数据操作至关重要。
摘要由CSDN通过智能技术生成
SELECT LEFT(SUBSTRING('123456',3,1),1); # 逐个拆分后获取指定索引的字符串 3:取第3个。1:取1个。1:从左取第一个
SELECT LEFT(SUBSTRING('P1111',help_topic_id+1),1) AS num FROM mysql.help_topic WHERE help_topic_id < LENGTH('P1111'); # 逐个拆分字符串
#################################
SELECT SUBSTRING_INDEX('a,b,c,d,e,f,g',',',2); # 按某个字符拆分后获取指定索引之前的字符串 2:取第二个索引之后的所有
SELECT SUBSTRING_INDEX('a,b,c,d,e,f,g',',',-2); # 按某个字符拆分后获取指定索引之后的字符串 -2:取倒数第二个索引之前的所有
# 注:这里的拆只是辅助定位索引位置,拆完原来的字符串并没有发生改变。只是提供了一种定位字符的规则;

# 按某个字符串拆分后取指定索引位置的字符,
#2:取最初的字符拆分之后第二个索引之前的字符串,取完之前字符串以后'a,b' -1:取倒数第一个索引之后的字符,也就是取倒数第一个
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d,e,f,g',',',2),',',- 1);


#利用help_topic达到拆分字符串为竖列表的目的,因为这个表的id从0开始。我们只要查询小于字符串拆分长度的数据,就能刚好得到我们想要拆分的数量的数据,然后在展示部分进行字符串的拆分,再利用id值进行索引的推进,
# 拆分后的长度我们可以利用替换REPLACE()函数,替换调所有的分隔符为空,然后用,原来包含分隔符的总字符数-去掉分隔符后的总数就能得到分隔符的数量,再+1就是我们需要拆分的数量[4个分隔符当然是拆5份了]
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX('王一加,兆老板,阿霆,卓羊,伢子哥',',',help_topic_id+1),',',-1) AS kname 
FROM
mysql.help_topic
WHERE
help_topic_id < LENGTH('王一加,兆老板,阿霆,卓羊,伢子哥')-LENGTH(REPLACE('王一加,兆老板,阿霆,卓羊,伢子哥',',',''))+1

在这里插入图片描述
如果不index套娃得到的结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值