MySQL中REPLACE函数与语句举例详解

2025-08-15 09:50

本文主要是介绍MySQL中REPLACE函数与语句举例详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函...

mysqlREPLACE 有两个不同的用途,分别是:

  1. REPLACE() 函数:用于字符串替换。
  2. REPLACE INTO 语句:用于插入或替换整行记录(类似 INSERT INTO ... ON DUPLICATE KEY UPDATE)。

MySQL中REPLACE函数与语句举例详解

一、REPLACE()函数

语法:

REPLACE(str, from_str, to_str)

参数说明:

参数类型描述
str字符串原始字符串
from_str字符串要被替换的子字符串
to_str字符串替换后的新子字符串

功能说明:

将字符串 str 中所有的 from_str 子字符串替换成 to_str,并返回新的字符串。如果 str 中不包含 from_str,则返回原始字符串。

示例:

SELECT REPLACE('http://8.130.70.131/image.jpg', '8.130.70.131', 'zhongyuele.top');
-- 返回: http://zhongyuele.top/image.jpg

二、REPLACE INTO语句

语法:

REPLACE INTO table_name [(column1, column2, ...)]
VALUES (value1, value2, ...);

参数说明:

参数类型描述
table_name表名要操作的数据表
(column1, column2, ...)列名列表可选,指定插入列
(value1, value2, ...)值列表对应列的值

功能说明:

  • 如果插入的记录与表中已有的主键或唯一索引冲突,则删除旧记录并插入新记录。
  • 否则,直接插入新记录。
  • 本质是“先删除再插入&jsrdquo;,不是更新!

示例:

REPLACE INTO users (id, name) VALUES (1, 'Alice');

如果 users 表中已有 id = 1 的记录,则该记录会被删除并插入新记录。

总结对比表格

特性REPLACE(str, from_str, to_str)REPLACE INTO
类型字符串函数SQL 语句
使用场景替换字符串中的部分内容插入或替换整条记录
是否影响原数据不修改原数据,仅返回新字符串实际执行写操作(删除 + 插入)
是否需要唯一索引是(依赖主键或唯一约束)
返回值替换后的字符串影响的行数(1 或 2)
示例SELECT REPLACE(name, 'a', 'A')REPLACE INTO table VALUES(...)

注意事项

  • REPLACE INTO 实际上是“删除+插入”,如果有自增主键,会导致 ID 变化。
  • REPLACE() 函数区分大小写(默认情况下)。
  • 在使用 REPLACE INTO 时要确保有合适的主键或唯一索引,否则等同于普通插入。

如需更细粒度控制(例如只更新某些字段),建议使用 INSERT INTO ... ON DUPLICATE KEY UPDATE

案例

以下是实现批量替换 [goods](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\Java\com\itmk\web\sys_banner\entity\SysBanner.java#L23-L24) 表中 [image](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\java\com\itmk\web\goods\entity\Goods.java#L47-L47) 列包含 8.130.70.131 字符串为 zhongyuele.top 的 SQL 语句,并对语法中的关键字进行详细说明,最后以表格形式总结。

执行 SQL 语句

UPDATE goods
SET image = REPLACE(image, '8.130.70.131', 'zhongyuele.top')
WHERE image LIKE '%8.130.70.131%';

关键字说明

关键字/函数说明
UPDATE用于修改表中的数据。指定要更新的表名(这里是 [goods](file://D:\workspace\me\rbac2024\read\后台系统\shop-appythoni\itmk-base-web\src\main\java\com\itmk\web\sys_banner\entity\SysBanner.java#L23-L24))。
SET指定要更新的列和新的值。这里将 [image](file://D:PvFXNxhaHworkspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\java\com\itmk\web\goods\entity\Goods.java#L47-L47) 列设置为 REPLACE(...) 的结果。
REPLACE(str, from_str, to_str)MySQL 内置字符串函数,用于将 str 中的所有 from_str 替换为 to_str
WHERE可选,但建议加上,用于限定只更新包含 8.130.70.131 的记录,避免全表更新影响性能。
LIKE用于模式匹配,这里的 % 是通配符,表示任意字符序列。'%8.130.70.131%' 表示包含该字符串的所有记录。

总结表格

SQL 元素示例含义
UPDATEUPDATE goods更新 [goods](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\java\com\itmk\web\sys_banner\entity\SysBanner.java#L23-L24) 表的数据
SETSET image = ...设置 [image](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\java\com\itmk\web\goods\entity\Goods.java#L47-L47) 列的新值
REPLACE()REPLACE(androidimage, '8.130.70.131', 'zhongyuele.top')替换 [image](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\src\main\java\com\itmk\web\goods\entity\Goods.java#L47-L47) 列中的旧字符串为新字符串
WHEREWHERE image LIKE PvFXNxhaH'%8.130.70.131%'仅更新包含目标字符串的行
LIKE'%'通配符,匹配任意字符组合

注意事项

  • 备份数据:在执行前请先备份表数据。
  • 测试环境验证:建议先在测试环境中运行确认无误后再上线。
  • 性能考虑:若表数据量大,建议在低峰期执行,或分批次更新。

例如分页更新:

UPDATE goods
SET image = REPLACE(image, '8.130.70.131', 'zhongyuele.top')
WHERE image LIKE '%8.130.70.131%'
LIMIT 1000;

可多次执行直到所有记录处理完毕。

总结

到此这篇关于MySQL中REPLACE函数与语句举例的文章就介绍到这了,更多相关MySQL中REPLACE函数语句内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于MySQL中REPLACE函数与语句举例详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155749

相关文章

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Kotlin 枚举类使用举例

《Kotlin枚举类使用举例》枚举类(EnumClasses)是Kotlin中用于定义固定集合值的特殊类,它表示一组命名的常量,每个枚举常量都是该类的单例实例,接下来通过本文给大家介绍Kotl... 目录一、编程枚举类核心概念二、基础语法与特性1. 基本定义2. 带参数的枚举3. 实现接口4. 内置属性三、

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时