MySQL字符串函数详解

embedded/2025/1/22 18:54:14/

简介

本文主要讲解MySQL中的字符串函数,包括:left、right、ltrim、rtrim、trim、upper、lower、lpad、rpad、concat、concat_ws、instr、substr、length、char_length、replace、reverse、char、ascii

left函数

语法:left(str,length),表示从字符串str左边开始截取指定长度length的部分,若length小于等于0,则返回空,若length大于等于str本身的长度,则返回str本身。

示例:从字符串【abcde】左边开始截取3个字符。

select left('abcde',3)

返回结果如下图:

right函数

语法:right(str,length),表示从字符串str右边开始截取指定长度length的部分,若length小于等于0,则返回空,若length大于等于str本身的长度,则返回str本身。

示例:从字符串【abcde】右边开始截取3个字符。

select right('abcde',3)

返回结果如下图:

ltrim函数

语法:ltrim(str),表示删除字符串str开头的所有空格。

示例:字符串【  abcde  】开头和结尾各有两个空格,现在删除其开头所有的空格。

select ltrim('  abcde  ')

返回结果如下图:左边空格被全部删除,右边空格全部保留。

rtrim函数

语法:rtrim(str),表示删除字符串str结尾的所有空格。

示例:字符串【  abcde  】开头和结尾各有两个空格,现在删除其结尾所有的空格。

select rtrim('  abcde  ')

返回结果如下图:右边空格被全部删除,左边空格全部保留。

trim函数

语法:trim(str),表示删除字符串str开头和结尾的所有空格,但不能删除中间的空格。

示例:字符串【 ab c de  】开头和结尾各有两个空格,中间也有空格,现在删除其开头和结尾所有的空格,保留中间的空格。

select trim('  ab c de  ')

返回结果如下图:左边和右边空格被全部删除,中间空格全部保留。

upper函数

语法:upper(str),表示将字符串str中所有的字母全部转换为大写。

示例:

select upper('abcde')

返回结果如下图:小写的abcde变成大写的ABCDE

lower函数

语法:lower(str),表示将字符串str中所有的字母全部转换为小写。

示例:

select lower('ABCDE')

返回结果如下图:大写的ABCDE变成小写的abcde

lpad函数

语法:lpad(str,len,padstr),表示在字符串str的最左侧填充指定的字符串padstr,直到达到指定的长度len,返回填充后的字符串,如果填充后str的长度大于len,则会对padstr进行截取以保证填充后的str长度刚好等于len。

示例:

select lpad('abc',6,'DE'); -- 返回:DEDabc
select lpad('abc',6,'D'); -- 返回:DDDabc
select lpad('abc',6,'DEFG'); -- 返回:DEFabc

rpad函数

语法:rpad(str,len,padstr),表示在字符串str的最右侧填充指定的字符串padstr,直到达到指定的长度len,返回填充后的字符串,如果填充后str的长度大于len,则会对padstr进行截取以保证填充后的str长度刚好等于len。

示例:

select rpad('abc',6,'DE'); -- 返回:abcDED
select rpad('abc',6,'D'); -- 返回:abcDDD
select rpad('abc',6,'DEFG'); -- 返回:abcDEF

concat函数

语法:concat(str1,str2,…),表示将str1、str2等多个字符串拼接起来,返回拼接后的字符串,如果有任何一个参数为NULL,则返回结果为NULL。

示例:

select concat('abc','de','f'); -- 返回:abcdef
select concat('abc','de',null); -- 返回:NULL
select concat('abc','','f'); -- 返回:abcf

concat_ws函数

语法:concat_ws(separator,str1,str2,...),表示将str1、str2等多个字符串按照指定的分隔符separator分隔后拼接起来,如果分隔符为NULL或者任何一个参与拼接的str为NULL,则返回结果为NULL。

示例:

select concat_ws('-','abc','de','f'); -- 返回:abc-de-f
select concat_ws('','abc','de','f'); --返回: abcdef
select concat_ws(NULL,'abc','de','f'); -- 返回:NULL
select concat_ws(NULL,'abc',NULL,'f'); -- 返回:NULL

instr函数

语法:instr(str, substr),表示返回子字符串substr在字符串str中第一次出现的位置,如果substr在str中没有出现,则返回0。

实例:

select instr('abcdbcfh','bc'); -- 返回:2
select instr('abcdbcfh','e'); -- 返回:0

substr函数

语法:substr(str,pos[,len]),表示从字符串str中第pos个字符开始从左往右截取指定长度len的子字符串。

注意:

len参数可选,如果没有指定截取长度参数len,则表示从pos位置开始一直截取到末尾;

如果pos大于0,则表示从开头第pos个字符位置开始截取(从左往右),如果pos小于0,则表示从倒数第pos个字符位置开始截取(从左往右),如果pos等于0,则返回结果为空。

示例:

select substr('abcdefg',1,3); -- 返回:abc
select substr('abcdefg',1,10); -- 返回:abcdefg
select substr('abcdefg',2); -- 返回:bcdefg
select substr('abcdefg',-1); -- 返回:g
select substr('abcdefg',-3); -- 返回:efg
select substr('abcdefg',-5,3); -- 返回:cde
select substr('abcdefg',-5,10); -- 返回:cdefg
select substr('abcdefg',0,5); -- 返回空

length函数

语法:length(str),返回字符串str的字节长度。对于UTF-8编码,一个中文字符占三个字节,一个英文字符占一个字节。

示例:

select length('abcde'); -- 返回:5
select length('汉字'); -- 返回:6

char_length函数

语法:char_length(str),返回字符串str的字符长度,不管是中文字符还是英文字符,都算作一个字符。

示例:

select char_length('abcde'); -- 返回:5
select char_length('汉字'); -- 返回:2

replace函数

语法:replace(str, old_str, new_str),表示对字符串str中出现的所有子字符串old_str,都用新字符串new_str进行替换,返回替换后的字符串str。

注意:如果old_str或new_str为NULL,则返回结果为NULL。

示例:

select replace('abcdebcef','bc','BC'); -- 返回:aBCdeBCef
select replace('abcdebcef','ab',''); -- 返回:cdebcef
select replace('abcdebcef','bc',NULL); -- 返回:NULL
select replace('abcdebcef',NULL,'bc'); -- 返回:NULL
select replace('abcdebcef','','h'); -- 返回:abcdebcef

reverse函数

语法:reverse(str),表示返回字符串str内容反转后的结果。

示例:

select reverse('abcde');

返回结果如下图:

char函数

语法:char(num1, [num2, ...]),表示将参数中的每一个num表示的ASCII码转换为字符,并将转换后的字符拼接起来作为返回结果,参数可以只有一个,也可以有多个。

示例:

select char(68); -- 返回:D
select char(65,66,67,68,69); -- 返回:ABCDE

ascii函数

语法:ascii(str),表示将字符串中的第一个字符转化为ASCII码,并作为返回结果。

示例:

select ascii('a'); -- 返回:97
select ascii('abcd'); -- 返回:97


http://www.ppmy.cn/embedded/156125.html

相关文章

以Python构建ONE FACE管理界面:从基础至进阶的实战探索

一、引言 1.1 研究背景与意义 在人工智能技术蓬勃发展的当下,面部识别技术凭借其独特优势,于安防、金融、智能终端等众多领域广泛应用。在安防领域,可助力监控系统精准识别潜在威胁人员,提升公共安全保障水平;金融行业中,实现刷脸支付、远程开户等便捷服务,优化用户体…

java微服务的异常

1.依赖异常 须知: 【 如果项目的结构是单个模块的,需要给每个单个模块添加起步依赖 spring-boot-starter-parent,指定版本 】 【 如果项目的结构是子父模块的,只需要给父模块添加起步依赖 spring-boot-starter-parent,…

owasp SQL 注入-03 (原理)

1: 先看一下注入界面: 点submit 后,可以看到有语法报错,说明已经起作用了: 报如下的错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near at line 1 2:…

国产化中间件东方通TongWeb环境安装部署(图文详解)

文章目录 前言一、TongWeb部署环境介绍二、安装步骤 1.导入安装包2.安装3.登录网页 总结 前言 中国政府一直致力于促进国内产业的发展和国产化进程。作为全球第二大经济体,中国政府部门在推动国产化方面发挥着至关重要的作用。本文是东方通中间件TongWeb的详细安装…

SQL中字符串截取函数(substring)

1.left(name,4)截取左边的四个字符 案例 select left(20240428,4) 结果 2024 2.right(name,2)截取右边的2个字符 案例 select right(20240428,2) 结果 28 3.substring(name,5,3)截取name这个字段从第五个字…

Android SystemUI——CarSystemBar视图解析(十一)

前面文章我们已经把 CarSystemBar 从启动到构建视图,再到将视图添加到 Window 的流程分析完毕,我们知道默认情况下在车载系统中只显示顶部栏和底部栏视图的。这里我们在前面文章的基础上以顶部栏为例具体解析其视图的结构。 一、顶部栏解析 通过《CarSystemBar车载状态栏》这…

HCIP笔记4--OSPF域内路由计算

1. 域内LSA 1.1 一类LSA 一类LSA: 路由器直连状态,Router LSA。 串口需要两端配置好IP,才会产生一类LSA; 以太网口只需要一端配置了IP就会直接产生一类LSA。 LSA通用头部 Type: Router 直连路由LS id: 12.1.1.1 路由器router idAdv rtr: 12.1.1.1 通告的路由器&…

Java高频面试之SE-15

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 String 怎么转成 Integer 的?它的原理是? 在 Java 中,要将 String 转换为 Integer 类型,可…