MySql中指定符号分割并分行展示
1.涉及到的函数三个:
1.1 REPLACE('value','str1','str2')
用法规则:使用str2替换掉value中的所有的str1;
SELECT REPLACE('我来了','来','走')
执行结果如下:

1.2 LENGTH(str)
用法规则:获取字符串的长度,使用 uft8(UNICODE 的一种变长字符编码,又称万国码)编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。
SELECT LENGTH('我来了'),LENGTH('you')
执行结果如下:

1.2 SUBSTRING_INDEX(str,delim,count)
用法规则:substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N(关键字出现的次数))
如果count是正数则从左往右截取,如果count是负数则从右往左截取,count是从1开始的不存在0,否则查询结果为空;
SELECT SUBSTRING_INDEX('我,是,菜,鸡',',',1)
-- 以第一个逗号为分割,截取第一个字符串
执行结果如下:

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

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

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

实现的sql如下:
SELECT
a.owner_type,SUBSTRING_INDEX( SUBSTRING_INDEX( a.roles, ',', b.help_topic_id + 1 ), ',',- 1 )
FROM
table1 a
JOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.roles ) - LENGTH( REPLACE ( a.roles, ',', '' ) ) + 1 );
执行结果:

案例语句分析:
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是以上语句执行后取第二个字符串,如截图:

以下sql字段执行结果求的是roles的值可以按照 ' , ' 被分割为多少个字符串:
(LENGTH(a.roles) - LENGTH(REPLACE(a.roles,',','')) + 1 )
执行后的结果如截图:

至于如何使用join进行循环的这里就不多做描述,可以百度下join的使用讲解^-^。。。。。。。
MySql中指定符号分割并分行展示的更多相关文章
- JS中,split()用法(将字符串按指定符号分割成数组)
<!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> <title ...
- 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件
查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求. 内容 查找符号 (.pdb) 文件 查找源文件 查找符号 (.pdb) 文件 说明 在之前的 Vis ...
- MySQL中 指定字段排序函数field()的用法
MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序. 函数使用格式如下: order by (str,str1,str2,str3,str4……),str与str1,str ...
- python提取mysql中指定列参数,并循环打印
试验环境: Python 3.7.0 Mysql 5.0 实验目的: 使用python将数据库中指定的列中的数值取出来,并循环遍历,用以当成参数传递给需要它的方法. 本次实验取的是para列的数据 实 ...
- 超实用--删除MYSQL中指定的数据的全部表
作过的人都知道,重复测试数据库的苦恼. 用法:# Usage: ./script user password dbnane mysql.nixcraft.in ~~~~~~~~~~~~~ #!/bin ...
- php中将数组转换为指定符号分割的字符串
如想将一个数组转换为以“,”分割的字符串,只需如下: implode(',', arr);
- mysql中实现字符串分割sp_split
sp_split : DELIMITER $$ CREATE DEFINER = 'test_user'@'%' PROCEDURE sp_split (IN p_str varchar(2000 ...
- SQL Server中自定义函数:用指定的分隔符号分割字符串
微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对 ...
- MySQL中数组的存储
1. MySQL中以字符串的形式存储数组 MySQL中无数组类型,通常将数组元素按某个字符分割以字符串形式存储 1.1. 求数组中元素的个数 方法:按指定符号分割字符串,返回分割后的元素个数.方法很简 ...
随机推荐
- vscode编写python,引用本地py文件出现红色波浪线
前言 引用本地py文件出现红色波浪线,如下图: 原因 经过查询得知,vscode中的python插件默认使用的是pylint来做代码检查,因此需要对pylint做一些配置 解决方案 在setting. ...
- 网站搭建-云服务器ECS的使用
1. 查看购买的云服务器实例,重置密码 2. 查找IP进行查看,此时网页时不存在的,开始配置: 3. 登录putty或其他终端,进行网页搭建,先按教程走一遍,然后再做个性化处理: #安装Apache ...
- LR Optimization-Based Estimator Design for Vision-Aided Inertial Navigation
Abstract 我们设计了一个 hybrid 估计器, 组合了两种算法, sliding-window EKF 和 EKF-SLAM. 我们的结果表示, hybrid算法比单一的好. 1. Intr ...
- Presto在滴滴的探索与实践
桔妹导读:Presto在滴滴内部发展三年,已经成为滴滴内部Ad-Hoc和Hive SQL加速的首选引擎.目前服务6K+用户,每天读取2PB ~ 3PB HDFS数据,处理30万亿~35万亿条记录,为 ...
- 【自学编程】C语言编程简单的小程序,计算长方体体积!
计算长方体体积 有朋友会说长方体体积还不好算吗?长X宽X高.没错用计算器一下就可以出结果,编程反而麻烦些,但是我们说的是这种思维,如果复杂的重复运算的话写好程序就非常简单了. 简单运算下一个固定高度的 ...
- 身为电气人,为什么也要学习C语言编程?人生苦短,我学编程!
说起编程大家可能都听过,但编程究竟是怎么一回事你弄懂了吗? 编程=对计算机程序进行编写,这些程序可以是现在手里拿着的手机.办公的电脑.你点击的页面.浏览的网页,都是有程序让它执行你要它做的事情. PL ...
- jmeter_02_目录文档说明
jmeter目录文档说明 bin目录是可执行文件 jmeter.bat 是启动文件 可以启动jmeter. 使用notpad++ 等文本编辑器打开 bat文件 可以配置jvm的参数 比如堆内存[Hea ...
- OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
前言 红胖子,来也! 做图像处理,经常头痛的是明明分离出来了(非颜色的),分为几块区域,那怎么知道这几块区域到底哪一块是我们需要的,那么这部分就涉及到需要识别了. 识别可以自己写模板匹配.特征 ...
- Helium文档15-WebUI自动化-chromedriver问题
前言 helium库是自带chromedriver的,我们怎么来查看在哪里呢? 目录介绍 用我的电脑上的路径打比方如下: D:\Program Files (x86)\Python38\Lib\sit ...
- 干掉hao123的第n+1种方法
最近看见我小弟无精打采的样子,问他怎么了,他说所有浏览器主页被hao123流氓劫持了,嚯,这回流氓碰同行--没辙. 我说这多大点事,百毒一下,以毒攻毒.于是便有了下面的这些方法: 适合小白: 第一种: ...