mysql 固定符号分列显示_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.3 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如下:
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 );
执行结果:
案例语句分析:
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 固定符号分列显示_MySql中指定符号分割并分行展示相关推荐
- mysql中 符号什么意思_MySQL中的 || 符号是什么意思?
sql 语句中 || 符号是连接的意思,相当于字符串中的连接符. SQL中常见的符号: 1.=表示 等于. 2.<> 表示不等于. 3.> 表示大于. 4.< 表示小于. 5. ...
- 【C++】在 Visual Studio 调试器中指定符号 (.pdb) 和源文件(转载自RSS翻译)
在 Visual Studio 调试器中指定符号 (.pdb) 和源文件 查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器:自动或按需加载符号. 内容 查找符号 (.pdb) ...
- mysql表date类型长度_mysql中数据类型的长度解释
11.2. 数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER.SMALLINT.DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT.RE ...
- mysql临时表的使用实例_MySQL中临时表的使用示例
这两天事情稍微有点多,公众号也停止更新了几天,结果有读者催更了,也是,说明还是有人关注,利己及人,挺好. 今天分享的内容是MySQL中的临时表,对于临时表,之前我其实没有过多的研究,只是知道MySQL ...
- mysql的explain怎么看_mysql中explain用法详解
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...
- mysql时间戳是什么意思_mysql中TIMESTAMP时间戳详解
在mysql数据库中,时间戳TIMESTAMP有如下的一些变体: 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在 ...
- mysql 事务隔离详解_MySQL 中事务、事务隔离级别详解
一.事务的概念 1.事务的概念 2.在mysql中哪些存储引擎(表类型)支持事务哪些不支持 3.事务的四个属性 4.mysql事务的创建与存在周期 5.mysql行为 6.事务的隔离性和性能 7.my ...
- mysql获取当前的月_MYSQL中获取当前的年和月
展开全部 select year(curdate()),month(curdate()),day(curdate()); select weekofyear(curdate()); 有点细微的差别,w ...
- mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...
最新文章
- [zz]Ubuntu建立本地源实用案例
- 云服务器apache mysql php_服务器配置教程:阿里云服务器安装PHP环境(附PHP+MySQL+Apache后台小Demo)...
- android之frame动画详解
- 转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程
- 前端与移动开发之vue-day1(1)
- Linux mail 邮件发送
- 软件开发项目过程管理文档
- 八大排序算法(C语言实现)
- 知识图谱(以金融知识图谱为例)
- 小象学院python网课值得吗-2018最新小象学院Python数据分析视频教程升级版第2期...
- oracle 19c pdb cdb,12c、19c 从 no-cdb升级到pdb步骤
- 采集HTTP与HTTPS
- 求1-1000以内的回文素数。回文素数指的是这个数既是回文数又是素数。
- 2022年PMP考试的3A好考吗?
- windows快捷键,选中鼠标所指以上或以下内容
- 如何安装Python?
- ArcBlock ⑪ 月报 | 无惧寒冬 ABT 2019 区块链远征启程
- ROS下安装vscode并配置ROS编译环境
- 万历十五年 - 读书
- ないで与なくて的异同