[MySQL]字符串函数

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

c4719afa82bc420fa4ce589a0ed1b47f.jpg

注意:MySQL中,字符串的位置是从1开始的

ASCII(S)

返回字符串S中的第一个字符的ASCII码值.

与第一个字符后面的其他字符无关。

SELECT
       ASCII('Abcdfsf')
FROM DUAL;

CHAR_LENGTH(s)

返回字符串s的字符数。作用与CHARACTER_LENGTH(s)相同。

SELECT
       CHAR_LENGTH('hello'),
       CHAR_LENGTH('我们')
FROM DUAL;

LENGTH(s)

返回字符串s的字节数,和字符集有关

utf-8 中每个中文字符占三个字节

SELECT
       LENGTH('hello'),
       LENGTH('我们')
FROM DUAL;

CONCAT(s1,s2,…,sn)

连接s1,s2,…,sn为一个字符串

SELECT
       CONCAT('zs',' worked for ','ls')
FROM DUAL;

CONCAT_WS(x, s1,s2,…,sn)

同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上x

SELECT
       concat_ws('---', 'zs', 'ls', 'ww')
FROM DUAL;

INSERT(str, idx, len, replacestr)

将字符串str从第idx位置开始,len个字符长的子串替换为字符串replacestr

注意:MySQL中,字符串的位置是从1开始的

SELECT 
       INSERT('helloworld',2,3,'aaaaa')
FROM DUAL;

REPLACE(str, a, b)

用字符串b替换字符串str中所有出现的字符串a

字符串str中不存在子字符串a,不进行替换。

SELECT
       replace('hello', 'll', 'mm'),
       REPLACE('hello','lol','mmm')
FROM DUAL;

UPPER(s) 或 UCASE(s)

将字符串s的所有字母转成大写字母

SELECT UPPER('HelLo'),UCASE('HelLo')
FROM DUAL;

LOWER(s) 或LCASE(s)

将字符串s的所有字母转成小写字母

SELECT LOWER('HelLo'),LCASE('HelLo')
FROM DUAL;

LEFT(str,n)

返回字符串str最左边的n个字符

RIGHT(str,n)

返回字符串str最右边的n个字符

SELECT LEFT('hello',2),RIGHT('hello',3),RIGHT('hello',13)
FROM DUAL;

LPAD(str, len, pad)

用字符串pad对str最左边进行填充,直到str的长度为len个字符

实现右对齐效果

RPAD(str ,len, pad)

用字符串pad对str最右边进行填充,直到str的长度为len个字符

实现左对齐效果

SELECT LPAD('hello', 7,' '), LPAD('world', 7,' '), LPAD('aa', 7,' '),
       RPAD('hello', 7,' '), RPAD('world', 7,' '), RPAD('aa', 7,' ')
FROM dual;

LTRIM(s)

去掉字符串s左侧的空格

RTRIM(s)

去掉字符串s右侧的空格

TRIM(s)

去掉字符串s开始与结尾的空格

SELECT
       '         he l lo         ',
       CONCAT('*', LTRIM('         he l lo         '), '*'),
       CONCAT('*', RTRIM('         he l lo         '), '*'),
       CONCAT('*', TRIM('         he l lo         '), '*')
FROM dual;

TRIM(s1 FROM s)

去掉字符串s开始与结尾的s1

TRIM(LEADING s1 FROM s)

去掉字符串s开始处的s1

TRIM(TRAILING s1 FROM s)

去掉字符串s结尾处的s1

SELECT
       TRIM('oo' FROM 'ooheollo'),
       TRIM(LEADING 'o' FROM  'ooheollo'),
       TRIM(TRAILING 'o' FROM  'ooheollo')
FROM DUAL;

REPEAT(str, n)

返回str重复n次的结果

SELECT REPEAT('hello',4)
FROM DUAL;

SPACE(n)

返回n个空格

SELECT CONCAT(SPACE(5), '*')
FROM DUAL;

STRCMP(s1,s2)

比较字符串s1,s2的ASCII码值的大小

SELECT
       STRCMP('abc','abe'),
       STRCMP('abe','abc'),
       STRCMP('abc','abc')
FROM DUAL;

SUBSTR(s,index,len)

返回从字符串s的index位置其len个字符,作用与SUBSTRING(s,n,len)、 MID(s,n,len)相同

SELECT SUBSTR('hello',2,2)
FROM DUAL;

LOCATE(substr,str)

返回字符串substr在字符串str中首次出现的位置,作用于POSITION(substr IN str)、INSTR(str,substr)相同。未找到,返回0

SELECT
       LOCATE('lll','hello'),
       LOCATE('ll','hello'),
       LOCATE('l','hello')
FROM DUAL;

ELT(m,s1,s2,…,sn)

返回指定位置的字符串,如果m=1,则返回s1,如果m=2,则返回s2,如果m=n,则返回sn

FIELD(s,s1,s2,…,sn)

返回字符串s在字符串列表中第一次出现的位置

FIND_IN_SET(s1,s2)

返回字符串s1在字符串s2中出现的位置。其中,字符串s2是一个以逗号分

隔的字符串

SELECT 
       ELT(2,'a','b','c','d'),
       FIELD('mm','gg','jj','mm','dd','mm'),
       FIND_IN_SET('mm','gg,mm,jj,dd,mm,gg')
FROM DUAL;

REVERSE(s)

返回s反转后的字符串

SELECT
       REVERSE('abcdefg')
FROM DUAL;

NULLIF(value1,value2)

比较两个字符串,如果value1与value2相等,则返回NULL,否则返回

value1

SELECT NULLIF('mysql','mysql'),NULLIF('mysql', '') FROM dual;



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