mysql 固定符号分列显示_MySql中指定符号分割并分行展示
发布日期:2021-06-24 15:59:11 浏览次数:2 分类:技术文章

本文共 1387 字,大约阅读时间需要 4 分钟。

1.涉及到的函数三个:

1.1 REPLACE('value','str1','str2')

用法规则:使用str2替换掉value中的所有的str1;

SELECT REPLACE('我来了','来','走')

执行结果如下:

34bfa83ea864e8e4a3cd869b76481298.png

1.2 LENGTH(str)

用法规则:获取字符串的长度,使用 uft8(UNICODE 的一种变长字符编码,又称万国码)编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。

SELECT LENGTH('我来了'),LENGTH('you')

执行结果如下:

6c9048581ed9d67649b036b54965f462.png

1.3 SUBSTRING_INDEX(str,delim,count)

用法规则:substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N(截取数据依据的字符出现的次数))

如果count是正数则从左往右截取,如果count是负数则从右往左截取,count是从1开始的不存在0,否则查询结果为空;

SELECT SUBSTRING_INDEX('我,是,菜,鸡',',',1)--以第一个逗号为分割,截取第一个字符串

执行结果如下:

cd5e9f0a42991dabf93994d6e4e2812f.png

SELECT SUBSTRING_INDEX('我,是,菜,鸡',',',2)--以第二个逗号为分割,截取前两个字符串

执行结果如下:

e333f63126379f24a2705c3d65b3c2fb.png

SELECT SUBSTRING_INDEX('我,是,菜,鸡',',',-2)-- 从右往左数第二个逗号为分割,截取两个字符串

执行结果如下:

df7f332e376cc5e46842e8cc002f6285.png

案例:

现有一张table1表,表中信息如截图,需要将表中的roles字段中的值按照‘,’分割,并且每个字符串展示为1行:

3cb4e9cc6d47d19791cf9e52417465b8.png

实现的sql如下:

SELECTa.owner_type,SUBSTRING_INDEX( SUBSTRING_INDEX( a.roles,',', b.help_topic_id + 1 ), ',',- 1)FROMtable1 aJOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.roles ) - LENGTH( REPLACE ( a.roles, ',', '' ) ) + 1 );

执行结果:

bfb2625f14e6ac30218ba6abe674d2c4.png

案例语句分析:

SUBSTRING_INDEX(SUBSTRING_INDEX(a.roles,',',b.help_topic_id + 1),',',-1)

在mysql.help_topic表中help_topic_id的值是(0,1,2······N),是从零开始的,SUBSTRING_INDEX(str,delim,count)中的count位置函数必须是从1开始,所以需要(b.help_topic_id + 1)从1开始循环,当help_topic_id 值为0时以上语句取值为第一个字符串,当help_topic_id 值为1是以上语句执行后取第二个字符串,如截图:

1f94b46a99097313f87f812915cab1b3.png

以下sql字段执行结果求的是roles的值可以按照 ' , ' 被分割为多少个字符串:

(LENGTH(a.roles) - LENGTH(REPLACE(a.roles,',','')) + 1 )

执行后的结果如截图:

5ed5cacaec2655add1f97bd70e0a9824.png

至于如何使用join进行循环的这里就不多做描述,可以百度下join的使用讲解^-^。。。。。。。

转载地址:https://blog.csdn.net/weixin_33701632/article/details/113124560 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql 5.5 免安装_mysql 5.5.56免安装版配置方法
下一篇:go语言io reader_go语言之IO操作(待补充)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月04日 13时41分29秒