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中指定符号分割并分行展示相关推荐

  1. mysql中 符号什么意思_MySQL中的 || 符号是什么意思?

    sql 语句中 || 符号是连接的意思,相当于字符串中的连接符. SQL中常见的符号: 1.=表示 等于. 2.<> 表示不等于. 3.> 表示大于. 4.< 表示小于. 5. ...

  2. 【C++】在 Visual Studio 调试器中指定符号 (.pdb) 和源文件(转载自RSS翻译)

     在 Visual Studio 调试器中指定符号 (.pdb) 和源文件 查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器:自动或按需加载符号.  内容 查找符号 (.pdb) ...

  3. mysql表date类型长度_mysql中数据类型的长度解释

    11.2. 数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER.SMALLINT.DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT.RE ...

  4. mysql临时表的使用实例_MySQL中临时表的使用示例

    这两天事情稍微有点多,公众号也停止更新了几天,结果有读者催更了,也是,说明还是有人关注,利己及人,挺好. 今天分享的内容是MySQL中的临时表,对于临时表,之前我其实没有过多的研究,只是知道MySQL ...

  5. mysql的explain怎么看_mysql中explain用法详解

    如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...

  6. mysql时间戳是什么意思_mysql中TIMESTAMP时间戳详解

    在mysql数据库中,时间戳TIMESTAMP有如下的一些变体: 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在 ...

  7. mysql 事务隔离详解_MySQL 中事务、事务隔离级别详解

    一.事务的概念 1.事务的概念 2.在mysql中哪些存储引擎(表类型)支持事务哪些不支持 3.事务的四个属性 4.mysql事务的创建与存在周期 5.mysql行为 6.事务的隔离性和性能 7.my ...

  8. mysql获取当前的月_MYSQL中获取当前的年和月

    展开全部 select year(curdate()),month(curdate()),day(curdate()); select weekofyear(curdate()); 有点细微的差别,w ...

  9. mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程

    当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...

最新文章

  1. [zz]Ubuntu建立本地源实用案例
  2. 云服务器apache mysql php_服务器配置教程:阿里云服务器安装PHP环境(附PHP+MySQL+Apache后台小Demo)...
  3. android之frame动画详解
  4. 转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程
  5. 前端与移动开发之vue-day1(1)
  6. Linux mail 邮件发送
  7. 软件开发项目过程管理文档
  8. 八大排序算法(C语言实现)
  9. 知识图谱(以金融知识图谱为例)
  10. 小象学院python网课值得吗-2018最新小象学院Python数据分析视频教程升级版第2期...
  11. oracle 19c pdb cdb,12c、19c 从 no-cdb升级到pdb步骤
  12. 采集HTTP与HTTPS
  13. 求1-1000以内的回文素数。回文素数指的是这个数既是回文数又是素数。
  14. 2022年PMP考试的3A好考吗?
  15. windows快捷键,选中鼠标所指以上或以下内容
  16. 如何安装Python?
  17. ArcBlock ⑪ 月报 | 无惧寒冬 ABT 2019 区块链远征启程
  18. ROS下安装vscode并配置ROS编译环境
  19. 万历十五年 - 读书
  20. ないで与なくて的异同

热门文章

  1. ArcGIS 10.2晕渲图+旋转图制作
  2. linux之如何在任意目录执行我常用的脚本文件
  3. C++之map插入数据相同的key不能覆盖value解决办法
  4. Android之在后台不显示activity方法
  5. linux网络编程之SCTP套接字常用接口
  6. linux c之c语言符合标准的头文件和linux常用头文件
  7. 怎么查看ubuntu是多少位和常用信息
  8. 汇编语言之常见的汇编指令
  9. 六、WebApp 二手信息站点页面制作(IVX 快速开发教程)
  10. solidity编写eth智能合约之contract 创建合约(二)