MySQL的字符串函数(十一)下

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL的字符串函数(十一)

二.十九 字符串从开始位置截取 substring_index(str,delimiter,num)


截取字符串 str, 从第 num位置开始的, 以delimiter 进行截取。 如果num 为正数,就截取后展示左边的全部内容。


如果num为负数,就倒着截取,然后展示右边的全部内容。 注意,都不包括分隔符这个内容。


如果str字符串里面没有这个分隔符,就返回str


如一个ip 地址, 192.168.1.101 进行截取。


  select substring_index('192.168.1.101','.',1) as 'a',substring_index('192.168.1.101','.',3) as 'b',
  substring_index('192.168.1.101','.',-1) as 'c',substring_index('192.168.1.101','.','-2') as 'd',
  substring_index('192.168.1.101','+',1) as 'e',substring_index('192.168.1.101','+',-1) as 'f';


20191126150905118.png


二.二十 字符串反转 reverse(s1)


将字符串反转


  select reverse('abcdefg'),reverse('两个蝴蝶飞'),reverse('1234321');


20191126150916393.png


二.二十一 最开始出现子字符串的位置 instr(str1,str2), locate(str2,str1) 与 position(str2 in str1)


三者的作用是一样的,都是查询子字符串最先出现的位置。


注意,str1与str2的位置。 instr与 java中的相同, locate() 与position的顺序正好相反。


如果没有找到,返回 0. 不是传说中的-1.


  select instr('abcde','bcd'),locate('a','abcdefg'),position('cd' in 'abdefg');


20191126150922329.png


二.二十二 指定位置的字符串 ELT(n,str1,str2,str3…)


如果n=1, 就返回str1, n=2 返回 str2, n=3返回str3, 如果n<=0,那么返回null, 如果n> 列表的字符串数目, 也返回null


  select elt(1,'a','b','c'),elt(2,'ab','bcd','c'),elt(0,'ab','ad');


20191126150924938.png


二.二十三 指定字符串的位置 FIELD(s,s1,s2,s3…)


如果s=s1,就返回1, 如果s=s2,就返回2, 如果s=s3 就返回3, 如果找不到,就返回0. 如果s为null, 那么也返回0. 0表示没有找到。


  select field('a','abc','a','ac'), field('ab','ab','abc','ab'),field('a','ab','b','c'),field(null,'a','b');


20191126150934777.png


二.二十四 集合子串的位置 find_in_set(s1,s2)


s2 是一个字符串,用, 进行拼接的。 如果s2为null,如果没有找到s1,就返回0. 如果s1中值为null,就返回null.


  select find_in_set('abc','a,abc,abc,ac,bc'),find_in_set('a','a,b,c,d'),
  find_in_set('a','ab,ac,ad'),find_in_set('a','a,null,b,ab'),
    find_in_set('a','null,a,b,ab'),find_in_set(null,'null,ac,b,ab');


20191126150941607.png


注意,并不是s2中有值为null,就直接返回null了。


二.二十五 选择字符串 make_set(x,s1,s2,s3…)


首先将 数值x 变成二进制数, 将列表值按照 s1,s2,s3…的顺序排序。 变成的二进制数依次排列,如果是1,就取出来,如果是0,就跳过。 取出来的值,如果是null,就跳过不管。


  select make_set(1,'abc','a','b'),make_set(3,'a','c','b'),make_set(5,'a','c','b','d'),
  make_set(5,'a','b',null,'c');


20191126150952157.png


1 二进制是 1, 放置在 ‘abc’,‘a’,‘b’ 里面, 取出 第一个 ‘abc’


3 二进制是11, 放置在 ‘a’,‘c’,‘b’, 取出 第一个a,和第二个c, 为 a,c


5 二进制是101, 放置在 ‘a’,‘c’,‘b’,‘d’, 取出第一个 a, 第二位是0,不取出, 第三位是1, 取出第三位的b, 为a,b


5 二进制是101, 放置在 ‘a’,‘b’,null,‘c’ ,取出第一个a,第二位是0,不取出, 第三位是1,取出null, 但null值跳过,不取,所以为 a.


二.二十六 格式化函数 format(n,d,locale)


locale默认是 ‘en_us’ . d 表示的是小数点位数。


将一个数值类型的数,格式化保留几位小数。 以###,###.## 的形式展示, 千分位展示。


n 即可以是数值类型,也可以是 数值的字符串。


  select format(23,2),format('12345',3),format('123455',2),format(123455,2);


20191126151000283.png


二.二十七 ASCII 码函数 ascii(s1)


字符串s1的第一个字符的 ascii码的值。只算第一个字符值。


  select ascii('abc'),ascii('a'),ascii('A');


20191126151006714.png


谢谢!!!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL
MySQL中的字符串函数有哪些?
本文介绍了几个常用的字符串函数,包括计算字符串字符数的`CHAR_LENGTH`、计算字符串长度的`LENGTH`、合并字符串的`CONCAT`和`CONCAT_WS`、替换字符串的`INSERT`,以及字母大小写转换的`LOWER`、`LCASE`、`UPPER`和`UCASE`。每个函数都有详细的说明和示例。
MySQL中的字符串函数有哪些?
|
前端开发 关系型数据库 MySQL
MySQL中常用函数之字符串函数使用详解
MySQL中常用函数之字符串函数使用详解
287 0
|
7月前
|
关系型数据库 MySQL 数据库
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
55 2
|
7月前
|
SQL 关系型数据库 MySQL
MySQL魔法秀:揭秘常用字符串函数的神奇操作
MySQL魔法秀:揭秘常用字符串函数的神奇操作
47 1
|
关系型数据库 MySQL
[MySQL]字符串函数
[MySQL]字符串函数
|
8月前
|
SQL 关系型数据库 MySQL
|
8月前
|
SQL 关系型数据库 MySQL
MySQL 数值函数,字符串函数与多表查询
MySQL 数值函数,字符串函数与多表查询
43 0
|
8月前
|
SQL 关系型数据库 MySQL
⑥ 【MySQL函数】字符串函数、数值函数、日期函数、流程函数
⑥ 【MySQL函数】字符串函数、数值函数、日期函数、流程函数
73 0
|
SQL 关系型数据库 MySQL
Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数
Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数
84 0
|
Serverless
MySQL-字符串函数
MySQL-字符串函数