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字符串函数的一些优点:

  1. 字符串操作和转换: MySQL字符串函数可以执行各种字符串操作,如连接字符串、提取子字符串、字符串替换、字符串转换为大写或小写等。这使得在数据库层面上进行字符串操作更加方便和高效,而无需在应用程序中处理。

  2. 数据整理和清洗: 字符串函数可用于数据的整理和清洗。例如,TRIM函数可以去除字符串两端的空格或指定的字符,而REPLACE函数可以轻松替换字符串中的某个子串。这使得处理和准备数据变得更加简单和可控。

  3. 字符串匹配和搜索: MySQL字符串函数提供了强大的字符串匹配和搜索功能。函数如LOCATE、REGEXP、FIND_IN_SET等可用于查找特定字符串、正则表达式匹配、在逗号分隔的列表中查找字符串等。这对于数据查询和筛选非常有用。

  4. 格式化和转换: 字符串函数可用于格式化和转换数据。例如,DATE_FORMAT函数可以将日期转换为指定格式的字符串,STR_TO_DATE函数可以将字符串解析为日期类型。这些转换功能对于数据报表生成和跨平台数据交互非常有帮助。

  5. 性能优化: 使用MySQL内置的字符串函数可以优化查询性能。在数据库层面上进行字符串操作和转换通常比在应用程序中进行更高效,特别是当涉及到大量数据处理时。

  6. 可嵌套和组合: MySQL字符串函数可以嵌套和组合使用,以实现更复杂的字符串操作。这使得在一个函数调用中执行多个操作成为可能,简化了编写复杂查询和处理复杂字符串逻辑的过程。

总的来说,MySQL字符串函数提供了丰富的功能和灵活性,可以帮助简化代码、提高性能,并使得处理和操作字符串数据更加方便和高效。

目前先举例这些关于字符串函数,如大家有补充,欢迎大家下面评论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/40421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ STL stack queue

目录 一.stack 介绍 二.stack 使用 三.stack 模拟实现 普通版本: 适配器版本: 四.queue的介绍 五. queue使用 六.queue模拟实现 七.deque介绍 1.容器适配器 2.deque的简单介绍 3.deque的缺陷 4.为什么选择deque作为stack和queue的底层默认容…

System.Text.Encoding不同字符编码之间进行转换

System.Text.Encoding 是 C# 中用于处理字符编码和字符串与字节之间转换的类。它提供了各种静态方法和属性,用于在不同字符编码之间进行转换,以及将字符串转换为字节数组或反之。 在处理多语言文本、文件、网络通信以及其他字符数据的场景中&#xff0c…

Spring Boot 获取前端参数

Spring Boot 获取前端参数 在开发 Web 应用程序时,前端参数是非常重要的。Spring Boot 提供了多种方法来获取前端参数,本文将介绍其中的一些常用方法。 1. 使用 RequestParam 注解 RequestParam 注解是 Spring MVC 提供的一种常用方式,用于…

C++ 函数

函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常…

pycharm调整最大堆发挥最大

python程序运行时,怎么提高效率,设置pycharm最大堆过程如下; 一、进入设置pycharm最大堆; 二、进入设置pycharm最大堆; 如果8g设置为6g左右,占75%左右最佳

5个实用的 Vue 技巧

在这篇文章中,我们将探讨五个实用的 Vue 技巧,这些技巧可以使你日常使用 Vue 编程更高效、更富有成效。无论你是Vue的初学者还是经验丰富的开发者,这些技巧都能帮助你编写更清晰、更简洁、更有效的代码。那么,让我们开始吧。 1. …

9.1 C++ STL 排序、算数与集合

C STL(Standard Template Library)是C标准库中的一个重要组成部分,提供了丰富的模板函数和容器,用于处理各种数据结构和算法。在STL中,排序、算数和集合算法是常用的功能,可以帮助我们对数据进行排序、统计…

【JVM】JVM中的分代回收

文章目录 分代收集算法什么是分代分代收集算法-工作机制MinorGC、 Mixed GC 、 FullGC的区别是什么 分代收集算法 什么是分代 在java8时,堆被分为了两份: 新生代和老年代【1:2】 其中: 对于新生代,内部又被分为了三…

eclipse常用设置

1、调整编辑页面字体大小 窗口 (Window)- 首选项(Preferences)- 常规(General)- 外观 (Appearence)- 颜色与字体 (Colors And Fonts),在右边的对话框里选择 Java - Java Editor Text Font,点击出现的修改&…

【ARM 嵌入式 编译系列 3.3 -- gcc 动态库与静态库的链接方法介绍】

文章目录 1.1 GCC 链接器 LD 介绍1.1.1 GCC 链接器 LD 常用参数介绍1.2 动态库和静态库介绍1.2.1 动态库和静态库优缺点1.2.2 库文件链接方式1.2.3 ldd 工具介绍1.2.4 静态库链接时搜索路径顺序1.2.5 动态库链接时、执行时搜索路径顺序1.2.6 头文件搜索路径1.2.7 有关环境变量上…

Neo4j之Aggregation基础

在 Neo4j 中,聚合(Aggregation)是对数据进行计算、汇总和统计的过程。以下是一些使用聚合函数的常见例子,以及它们的解释: 计算节点数量: MATCH (p:Person) RETURN count(p) AS totalPersons;这个查询会计…

Socks5代理在多线程爬虫中的应用

在进行爬虫开发过程中,我们常常需要处理大量的数据,并执行多任务并发操作。然而,频繁的请求可能会引起目标网站的反爬机制,导致IP封禁或限制访问。为了规避这些限制,我们可以借助Socks5代理的强大功能,通过…

Nginx反向代理技巧

跨域 作为一个前端开发者来说不可避免的问题就是跨域,那什么是跨域呢? 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。浏览器的同源策略是指协议,域名…

2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码)

2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码) 1、时间:2011-2020(省级、城市),2014-2020(区县) 2、原始数据来源:北大金融研究中心…

npm的镜像源和代理的查看和修改

一、镜像源 查询当前镜像源 npm get registry 设置为淘宝镜像 npm config set registry http://registry.npm.taobao.org/ 设置回默认的官方镜像 npm config set registry https://registry.npmjs.org/ 设置electron为淘宝镜像 npm config set ELECTRON_MIRROR "h…

Redis对象类型和结构、内存回收、对象共享

对象类型和结构 在Redis中,无论是键key还是值value都是一个对象,每次对Redis数据库创建一个新的键值对时,就至少会创建两个对象。 常见的对象类型有: 字符串列表哈希集合有序集合 这些对象在Redis中统一用一个结构体redisObjec…

VS2019生成的DLL,给QT(MinGW版本)使用的小结

VS2019端: a 基于生成一个DLL的工程(要注意生成是x86,还是x64的,需要和后面的QT的App工程对应),这里不多解释了,网上多的是; b 在cpp实现文件里,假如要导出一个这样的…

Git如何上传文件到github

Git下载网址: https://git-scm.com/downloads 1. 新建一个空文件夹,用来上传文件,第一次需创建,以后无需创建 2. 点进去空文件夹,鼠标右键,使用Git Bash Here 打开 3. 克隆远程仓库:git cl…

深入理解JVM——垃圾回收与内存分配机制详细讲解

所谓垃圾回收,也就是要回收已经“死了”的对象。 那我们如何判断哪些对象“存活”,哪些已经“死去”呢? 一、判断对象已死 1、引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加一&…

解决git reset --soft HEAD^撤销commit时报错

今天在使用git回退功能的时候,遇到以下错误: 解决git reset --soft HEAD^撤销commit时报错 问题: 在进行完commit后,想要撤销该commit,于是使用了git reset --soft HEAD^命令,但是出现如下报错&#xff1…