MySQL数据库-字符串函数详解
前言
MySQL数据库提供了多种不同类型的函数,用于处理字符串、日期、数值等数据类型,以及实现条件、聚合等操作,下面我们主要介绍字符串函数
CONCAT()
函数 CONCAT() 可用于将多个字符串连接在一起。
示例:
SELECT CONCAT('Hello', ' ', 'World') AS result;
-- Output: Hello World
SUBSTRING()
函数 SUBSTRING() 可用于从字符串中提取子串。
示例:
SELECT SUBSTRING('Welcome to MySQL', 3, 7) AS result;
-- Output: lcome t
CHAR_LENGTH()
函数 CHAR_LENGTH() 用于返回字符的长度(以字符个数为单位)。
示例:
SELECT CHAR_LENGTH('MySQL') AS result;
-- Output: 5
LOWER() / UPPER()
函数 LOWER() 和 UPPER() 可用于将字符串转换为小写和大写。
示例:
SELECT LOWER('Hello') AS result1, UPPER('World') AS result2;
-- Output: hello, WORLD
TRIM()
函数 TRIM() 可用于去除字符串两端的空格或指定的字符。
示例:
SELECT TRIM(' Hello ') AS result;
-- Output: Hello
REPLACE()
函数 REPLACE() 可用于替换字符串中的子串。
示例:
SELECT REPLACE('Hello World', 'World', 'MySQL') AS result;
-- Output: Hello MySQL
LENGTH()
函数 LENGTH() 返回字符串的长度(以字节为单位)。
示例:
SELECT LENGTH('MySQL') AS result;
-- Output: 5
INSTR()
函数 INSTR() 用于查找子串在字符串中第一次出现的位置。
示例:
SELECT INSTR('Hello World', 'World') AS result;
-- Output: 7
INSERT()
函数 INSERT() 可以将一个字符串插入到另一个字符串的指定位置。
示例:
SELECT INSERT('Hello World', 7, 0, 'MySQL ') AS result;
-- Output: Hello MySQL World
CONCAT_WS()
函数 CONCAT_WS() 可用于将多个字符串以指定的分隔符连接在一起。
示例:
SELECT CONCAT_WS('-', '2023', '08', '17') AS result;
-- Output: 2023-08-17
LPAD() / RPAD()
函数 LPAD() 和 RPAD() 可将字符串填充到指定的长度。
示例:
SELECT LPAD('Hello', 10, '*') AS result1, RPAD('World', 10, '*') AS result2;
-- Output: ****Hello, World*****
LEFT() / RIGHT()
函数 LEFT() 和 RIGHT() 可用于从字符串的左侧或右侧提取指定长度的子串。
示例:
SELECT LEFT('MySQL', 3) AS result1, RIGHT('MySQL', 2) AS result2;
-- Output: MyS, L
REVERSE()
函数 REVERSE() 可以将字符串反转。
示例:
SELECT REVERSE('Hello') AS result;
-- Output: olleH
MID()
函数 MID() 可以从指定位置开始提取指定长度的子串。
示例:
SELECT MID('MySQL', 2, 3) AS result;
-- Output: ySQ
LOCATE()
函数 LOCATE() 可以查找子串在字符串中第一次出现的位置。
示例:
SELECT LOCATE('World', 'Hello World') AS result;
-- Output: 7
CONCAT_NULL_YIELDS_NULL
变量 CONCAT_NULL_YIELDS_NULL 可以控制连接操作中 NULL 值的处理。当设置为 ON(默认值)时,任何与 NULL 进行连接的操作都将结果置为 NULL。
示例:
SET CONCAT_NULL_YIELDS_NULL = OFF;
SELECT CONCAT('Hello', NULL) AS result;
-- Output: Hello
FIND_IN_SET()
函数 FIND_IN_SET() 可以找到字符串在逗号分隔的字符串列表中的位置。
示例:
SELECT FIND_IN_SET('MySQL', 'SQL,MySQL,Database') AS result;
-- Output: 2
FORMAT()
函数 FORMAT() 可以将数字格式化为带有逗号分隔的字符串。
示例:
SELECT FORMAT(12345.67, 2) AS result;
-- Output: 12,345.67
REGEXP()
函数 REGEXP() 可以使用正则表达式进行模式匹配。
示例:
SELECT 'Hello' REGEXP '^H' AS result;
-- Output: 1 (表示匹配)
UCASE() / LCASE()
函数 UCASE() 和 LCASE() 可用于将字符串转换为大写和小写。
示例:
SELECT UCASE('hello') AS result1, LCASE('WORLD') AS result2;
-- Output: HELLO, world
STRCMP()
函数 STRCMP() 可用于比较两个字符串。
示例:
SELECT STRCMP('Hello', 'Hello') AS result;
-- Output: 0 (表示相等)
SUBSTRING_INDEX()
函数 SUBSTRING_INDEX() 可用于从字符串中提取子串,基于指定的分隔符与出现次数。
示例:
SELECT SUBSTRING_INDEX('www.example.com', '.', 2) AS result;
-- Output: www.example
TRIM()
函数 TRIM() 可用于去除字符串两端的空格或指定的字符。
示例:
SELECT TRIM(' Hello ') AS result;
-- Output: Hello
STR_TO_DATE() / DATE_FORMAT()
函数 STR_TO_DATE() 可以将字符串转换为日期,并且可以使用 DATE_FORMAT() 将日期格式化为字符串。
示例:
SELECT STR_TO_DATE('2023-08-17', '%Y-%m-%d') AS result1, DATE_FORMAT(NOW(), '%Y-%m-%d') AS result2;
-- Output: 2023-08-17, 当前日期
HEX()
函数 HEX() 可以将字符串转换为十六进制格式。
示例:
SELECT HEX('Hello') AS result;
-- Output: 48656C6C6F
ASCII()
函数 ASCII() 可以返回字符的 ASCII 值。
示例:
SELECT ASCII('A') AS result;
-- Output: 65
REPEAT()
函数 REPEAT() 可以将字符串重复指定次数。
示例:
SELECT REPEAT('MySQL', 3) AS result;
-- Output: MySQLMySQLMySQL
CONCAT_WS()
函数 CONCAT_WS() 可用于将多个字符串以指定的分隔符连接在一起。
示例:
SELECT CONCAT_WS('-', '2023', '08', '17') AS result;
-- Output: 2023-08-17
CONCAT()
函数 CONCAT() 可用于将多个字符串连接在一起。
示例:
SELECT CONCAT('Hello', ' ', 'World') AS result;
-- Output: Hello World
SOUNDEX()
函数 SOUNDEX() 可以返回字符串的音标编码。
示例:
SELECT SOUNDEX('Hello') AS result;
-- Output: H400
FIELD()
函数 FIELD() 可以返回字符串在逗号分隔的列表中的位置。
示例:
SELECT FIELD('MySQL', 'SQL,MySQL,Database') AS result;
-- Output: 2
ELT()
函数 ELT() 可以返回指定位置的字符串。
示例:
SELECT ELT(2, 'Apple', 'Banana', 'Cherry') AS result;
-- Output: Banana
MID()
函数 MID() 可以从指定位置开始提取指定长度的子串。
示例:
SELECT MID('MySQL', 2, 3) AS result;
-- Output: ySQ
BINARY()
函数 BINARY() 可以将字符串转换为二进制字符串。
示例:
SELECT BINARY('Hello') AS result;
-- Output: 48656C6C6F
REGEXP_REPLACE()
函数 REGEXP_REPLACE() 可以使用正则表达式进行字符串替换。
示例:
SELECT REGEXP_REPLACE('Hello World', 'Wo*', '') AS result;
-- Output: Hello rld
REVERSE()
函数 REVERSE() 可以反转字符串。
示例:
SELECT REVERSE('Hello World') AS result;
-- Output: dlroW olleH
FIND_IN_SET()
函数 FIND_IN_SET() 可用于在逗号分隔的列表中查找字符串的位置。
示例:
SELECT FIND_IN_SET('MySQL', 'SQL,MySQL,Database') AS result;
-- Output: 2
UNHEX()
函数 UNHEX() 可以将十六进制字符串转换为二进制数据。
示例:
SELECT UNHEX('48656C6C6F') AS result;
-- Output: Hello
OCT()
函数 OCT() 可以将十进制数转换为八进制数。
示例:
SELECT OCT(50) AS result;
-- Output: 62
HEX()
函数 HEX() 可以将数字转换为十六进制格式。
示例:
SELECT HEX(255) AS result;
-- Output: FF
后语
MySQL字符串函数提供了许多强大的功能和优点,使得在处理字符串数据时更加方便和高效。以下是MySQL字符串函数的一些优点:
-
字符串操作和转换: MySQL字符串函数可以执行各种字符串操作,如连接字符串、提取子字符串、字符串替换、字符串转换为大写或小写等。这使得在数据库层面上进行字符串操作更加方便和高效,而无需在应用程序中处理。
-
数据整理和清洗: 字符串函数可用于数据的整理和清洗。例如,TRIM函数可以去除字符串两端的空格或指定的字符,而REPLACE函数可以轻松替换字符串中的某个子串。这使得处理和准备数据变得更加简单和可控。
-
字符串匹配和搜索: MySQL字符串函数提供了强大的字符串匹配和搜索功能。函数如LOCATE、REGEXP、FIND_IN_SET等可用于查找特定字符串、正则表达式匹配、在逗号分隔的列表中查找字符串等。这对于数据查询和筛选非常有用。
-
格式化和转换: 字符串函数可用于格式化和转换数据。例如,DATE_FORMAT函数可以将日期转换为指定格式的字符串,STR_TO_DATE函数可以将字符串解析为日期类型。这些转换功能对于数据报表生成和跨平台数据交互非常有帮助。
-
性能优化: 使用MySQL内置的字符串函数可以优化查询性能。在数据库层面上进行字符串操作和转换通常比在应用程序中进行更高效,特别是当涉及到大量数据处理时。
-
可嵌套和组合: MySQL字符串函数可以嵌套和组合使用,以实现更复杂的字符串操作。这使得在一个函数调用中执行多个操作成为可能,简化了编写复杂查询和处理复杂字符串逻辑的过程。
总的来说,MySQL字符串函数提供了丰富的功能和灵活性,可以帮助简化代码、提高性能,并使得处理和操作字符串数据更加方便和高效。
目前先举例这些关于字符串函数,如大家有补充,欢迎大家下面评论!
相关文章:

MySQL数据库-字符串函数详解
前言 MySQL数据库提供了多种不同类型的函数,用于处理字符串、日期、数值等数据类型,以及实现条件、聚合等操作,下面我们主要介绍字符串函数 CONCAT() 函数 CONCAT() 可用于将多个字符串连接在一起。 示例: SELECT CONCAT(Hell…...

半导体退火那些事(3)
4.半导体退火设备 双腔全自动兼容6-8寸快速退火炉RTP 产地:中国 型号: S803 特点: 室温到1250C,应用于SiC,GaN等第三代半导体领域 简介 (Description) S803系列自动快速退火炉,内置Robot可以自动取放片,适用于最大8英寸 (单片200m…...

1281. 整数的各位积和之差
诸神缄默不语-个人CSDN博文目录 力扣刷题笔记 文章目录 1. 简单粗暴的遍历2. 其实也是遍历,但是用Python内置函数只用写一行 1. 简单粗暴的遍历 Python版: class Solution:def subtractProductAndSum(self, n: int) -> int:he0ji1while n>1:last…...

如何使用Vue和C++实现OJ《从零开始打造 Online Judge》
课程简介 课程链接:https://www.lanqiao.cn/courses/20638 邀请码:x8pGd60V 本课程采用前后端分离架构,基于 Vue.js 和 C 技术,从零开始打造 Online Judge。 课程介绍 OJ 是 Online Judge 系统的简称,用来在线检测…...

在Spring Boot和Vue中实现请求过滤器以验证请求头中的Token
在Spring Boot应用程序中创建一个过滤器类,用于处理请求: Component public class AuthenticationFilter implements Filter {Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,…...

ThreeJS——在3D地球上标记中国地图板块
Threejs3D地球标记中国地图位置 先看效果 地球预览视频效果 用到的库 TweenJS (动画库)用来做相机转场的动画Jquery(这里只用到一个 each 循环方法,可以使用 js 去写)ThreeJS (3D 地球制作)100000.json(全国城市经纬度)d3.v6.js用来设置平面转3D效果(本来考虑做成…...

第2章 性能测量
理解应用程序性能的第一步是学会对它进行测量。 与绝大多数功能问题相比,性能问题通常很难跟踪和复现。 任何关注过性能评估的人可能都知道公允地进行性能测量并从中得到准确结论是多么困难。 因为在测量中存在误差,性能分析通常需要统计方法进行处理…...

未来,运营的重要性大于产品?
微博上看到某产品大V的一个观点,说在未来,产品运营的重要性会大过产品经理,还挺认同的,谈谈我的想法。 这个观点的核心依据是,目前没有新的产品形态,各种产品解决方案都是标准化的,产品由开疆辟…...

paddle ocr框架识别数字问题和解决方案
识别出的字符串重复 情况1:检测错误,同一个字符串被两次检测到 比如 “12 方案 ” 被识别成:“12” “2方案”,这种可以通过x坐标交叉并且第一个结果最后一个字符与第二个结果第一个字符相同判断 情况2: 识别错误&am…...

构建高性能的MongoDB数据迁移工具:Java的开发实践
随着大数据时代的到来,数据迁移成为许多企业和组织必须面对的挑战之一。作为一种非关系型数据库,MongoDB在应用开发中得到了广泛的应用。为了满足数据迁移的需求,我们需要一个高性能、稳定可靠的MongoDB数据迁移工具。下面将分享使用Java开发…...

2023年国赛数学建模思路 - 案例:最短时间生产计划安排
文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…...

1572. 矩阵对角线元素的和
题目描述: 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例: 解题思路: 同时求对角线和副对角线上元素的和再减去重合的元素 相关代码…...

在vue中使用swiper轮播图(搭配watch和$nextTick())
在组件中使用轮播图展示图片信息: 1.下载swiper,5版本为稳定版本 cnpm install swiper5 2.在组件中引入swiper包和对应样式,若多组件使用swiper,可以把swiper引入到main.js入口文件中: import swiper/css/swiper.css //引入swipe…...

Java书签 #使用MyBatis接入多数据源
楔子:当然,世上有很多优秀的女性,我也会被她们吸引。这对男人来说是理所当然的。但目光被吸引和内心被吸引是截然不同的。- 东野圭吾《黎明之街》 今日书签 在一些应用场景中,可能需要连接多个不同的数据库,例如连接不…...

神经网络基础-神经网络补充概念-23-神经网络的梯度下降法
概念 神经网络的梯度下降法是训练神经网络的核心优化算法之一。它通过调整神经网络的权重和偏差,以最小化损失函数,从而使神经网络能够逐渐逼近目标函数的最优值。 步骤 1损失函数(Loss Function): 首先,…...

鸿蒙3.1 设备管理DeviceManager
介绍 DeviceManager组件在OpenHarmony上提供账号无关的分布式设备的认证组网能力,并为开发者提供了一套用于分布式设备间监听、发现和认证的接口。 其组成及依赖如下所示: 总结 设备管理模块其实就是软总线的包皮服务。目前权限都是控制系统uid,但是根据官方介绍,后续可…...

Git 目录详解
一、Git目录详解 在使用Git时,有几个目录和文件在Git项目中扮演着重要的角色,下面详细介绍一下这些目录和文件的作用 1、.git目录 .git目录是Git项目的核心,包含了Git的版本库和元数据等重要信息。在该目录中,有一些重要的子目录和…...

基于springboot+vue的武汉旅游网(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

步入React正殿 - React组件设计模式
目录 扩展学习资料 高阶组件 /src/components/hoc/withTooltip.js /src/components/hoc/itemA.jsx /src/components/hoc/itemB.jsx /src/App.js 函数作为子组件【Render pprops】 函数作为子组件 /src/components/rp/itemC.jsx【父组件】 /src/components/rp/withToo…...

Java 单例模式简单介绍
何为单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 实现思路 如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必…...

根据源码,模拟实现 RabbitMQ - 从需求分析到实现核心类(1)
目录 一、需求分析 1.1、对 Message Queue 的认识 1.2、消息队列核心概念 1.3、Broker Server 内部关键概念 1.4、Broker Server 核心 API (重点实现) 1.5、交换机类型 Direct 直接交换机 Fanout 扇出交换机 Topic 主题交换机 1.6、持久化 1.7…...

企业服务器数据库遭到malox勒索病毒攻击后如何解决,勒索病毒解密
网络技术的发展不仅为企业带来了更高的效率,还为企业带来信息安全威胁,其中较为常见的就是勒索病毒攻击。近期,我们公司收到很多企业的求助,企业的服务器数据库遭到了malox勒索病毒攻击,导致系统内部的许多重要数据被加…...

udp与can通信的选择与比较
UDP(用户数据报协议)和CAN(控制器局域网)是两种不同的通信协议,它们在实时传递性上有一些区别。 UDP是一种无连接的传输协议,它提供了简单的、不可靠的数据传输。UDP不提供可靠性保证、流控制或重传机制。…...

HoudiniVex笔记_P24_ForceBasics力基础
原视频:https://www.youtube.com/playlist?listPLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili Houdini版本:19.5 1、什么是Force 本章主要讲重力、弹力、速度与质量、…...

半导体退火那些事(1)
1.半导体退火的原理 半导体材料在晶体生长和制造过程中,由于各种原因会出现缺陷、杂质、位错等结构性缺陷,导致晶格不完整,施加电场后的电导率较低。通过退火处理,可以使材料得到修复,结晶体内部重新排列,…...

MapReduce介绍
目录 一、什么是MapReduce 二、MapReduce 的设计思想 2.1 分而治之 2.2 构建抽象模型:Map和Reduce 2.3 隐藏系统层细节 三、MapReduce 的框架原理 3.1 MRv1工作原理 3.1.1 MRv1架构工作原理图 3.1.1.1 流程说明 3.1.1.1.1 作业的提交 3.1.1.1.2 作业的初始化 3…...

Redis支持的主要数据结构操作命令有哪些?
Redis支持多种数据结构操作命令,包括以下主要命令: 字符串(Strings): SET:设置字符串键的值。GET:获取指定键的值。INCR/DECR:对存储整数的字符串执行加一或减一操作。APPEND&#x…...

环境与能源创新专题:地级市绿色创新、碳排放与环境规制数据
数据简介:推动绿色发展,促进人与自然和谐共生是重大战略举措。绿色发展强调“绿水青山就是金山银山”,人与自然和谐共生重在正确处理生态环境保护与经济发展的关系。在着力于实现绿色发展的过程中,绿色创新是绿色发展的重要驱动因…...

设计模式之门面模式(Facade)的C++实现
1、门面模式提出 在组件的开发过程中,某些接口之间的依赖是比较紧密的,如果某个接口发生变化,其他的接口也会跟着发生变化,这样的代码违背了代码的设计原则。门面设计模式是在外部客户程序和系统程序之间添加了一层中间接口&…...

【数理知识】向量与基的内积,Matlab 代码验证
序号内容1【数理知识】向量的坐标基表示法,Matlab 代码验证2【数理知识】向量与基的内积,Matlab 代码验证 文章目录 1. 向量与基的内积2. 二维平面向量举例3. 代码验证Ref 1. 向量与基的内积 假设存在一个二维平面内的向量 a ⃗ \vec{a} a ,…...