[MySQL]字符串函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: [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;



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
关系型数据库 MySQL Serverless
MySQL字符串函数使用技巧
本文为您提供了多个有趣的示例,引导您更深入地了解如何使用MySQL字符串函数。希望这些知识能帮助您更高效地操作数据库。
141 13
|
前端开发 关系型数据库 MySQL
MySQL中常用函数之字符串函数使用详解
MySQL中常用函数之字符串函数使用详解
434 0
|
10月前
|
关系型数据库 MySQL
MySQL中的字符串函数有哪些?
本文介绍了几个常用的字符串函数,包括计算字符串字符数的`CHAR_LENGTH`、计算字符串长度的`LENGTH`、合并字符串的`CONCAT`和`CONCAT_WS`、替换字符串的`INSERT`,以及字母大小写转换的`LOWER`、`LCASE`、`UPPER`和`UCASE`。每个函数都有详细的说明和示例。
309 2
MySQL中的字符串函数有哪些?
|
关系型数据库 MySQL 数据库
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
MySQL数据库——函数-字符串函数、数值函数、日期函数、流程函数
132 2
|
SQL 关系型数据库 MySQL
MySQL魔法秀:揭秘常用字符串函数的神奇操作
MySQL魔法秀:揭秘常用字符串函数的神奇操作
113 1
|
SQL 关系型数据库 MySQL
MySQL 数值函数,字符串函数与多表查询
MySQL 数值函数,字符串函数与多表查询
78 0
|
SQL 关系型数据库 MySQL
⑥ 【MySQL函数】字符串函数、数值函数、日期函数、流程函数
⑥ 【MySQL函数】字符串函数、数值函数、日期函数、流程函数
137 0
|
SQL 关系型数据库 MySQL
Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数
Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数
134 0
|
Serverless
MySQL-字符串函数
MySQL-字符串函数

推荐镜像

更多