iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中Replace语句用法实例详解
  • 661
分享到

MySQL中Replace语句用法实例详解

mysql的replace用法mysql中replacemysql中replace语句 2022-08-08 12:08:00 661人浏览 安东尼
摘要

目录前言一、replace into函数二、replace into 、insert ignore 和 insert into的区别三、replace函数总结前言 replace into平时在开发中很少用到,这次是因为

前言

replace into平时在开发中很少用到,这次是因为在做一个生成分布式ID的开源项目,调研雅虎推出的一个基于数据库生成唯一id生成方案:flickr 碰到的一个知识盲点,仅以此篇记录一下。

一、replace into函数

表结构

CREATE TABLE `id_generator` (  
`id` bigint(20) unsigned NOT NULL auto_increment,  
`stub` char(1) NOT NULL default '',  
  PRIMARY KEY  (`id`),  
UNIQUE KEY `stub` (`stub`)  
) ENGINE=MyISAM;

id列是主键索引,stub 列是唯一索引 。

replace into向数据库中插入数据时,如果数据重复,则删除重复的那行数据,然后在插入一行。

replace具备替换拥有唯一索引或者主键索引重复数据的能力,也就是如果使用replace into插入的数据的唯一索引或者主键索引与之前的数据有重复的情况,将会删除原先的数据,然后再进行添加。

那怎么判断是否重复的标准就是:唯一索引或者主键索引是否一致。语法:replace into table( col1, col2, col3 ) values ( val1, val2, val3 )
语义:向table表中col1, col2, col3列replace数据val1,val2,val3

以id_generator表为例:

REPLACE INTO id_generator(stub) VALUES ('trade')
 
 
执行信息如下:
No errors; 1 rows affected, taking 20ms

表示只添加了一行。

执行结果:

+----+--------------+
| id | stub         |
+----+--------------+
| 1  | trade        |
+----+--------------+

接续执行如下语句:

REPLACE INTO id_generator(stub) VALUES ('trade')
 
 
执行信息如下:
No errors; 2 rows affected, taking 23ms

因为删除了一行,添加了一行。

执行结果:

+----+--------------+
| id | stub         |
+----+--------------+
| 3  | trade        |
+----+--------------+

因为stub列创建列唯一索引,所以replace into当stub有重复的数据行时,会删除这行数据重新添加,导致id发生变化。

如果replace into唯一索引 id 重复的话,会怎么样呢?

REPLACE INTO id_generator(id) VALUES (3)
 
 
执行信息如下:
No errors; 2 rows affected, taking 28ms

因为删除了一行,添加了一行。

执行结果:

+----+--------------+
| id | stub         |
+----+--------------+
| 3  |              |
+----+--------------+

这时我们看到stub列的值为空字符串,因为id是唯一索引,id=3的记录已经存在,所以replace into会删除id=3的记录,重新添加,导致stub为空。

二、replace into 、insert ignore 和 insert into的区别

replace into 跟 insert into 功能类似。

不同点在于:

insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。

insert ignore 如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入)。

replace into 首先尝试插入数据到表中。

  1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
  2. 否则,直接插入新数据。

注意:**插入数据的表必须有主键或者是唯一索引!**否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据

三、replace函数

语法:replace(field,search,replace)

说明:field - 数据库表的列名

search - 需要替换的字符串

replace - 替换成的字符串

语义:将列名:field 中出现的search字符串,全部替换成replace字符串。

实例:

update id_generator set stub = replace(stub,'trade','user')
 
select replace(uuid(), '-', '');

附:mysql中的replace into跟insert into用法类似

  • INSERT :会每次插入一条新的数据。
  • REPLACE:先看表中是否存在此条数据,如果存在,先删除该条数据,再插入一条新的数据;如果不存在,则直接插入一条新的数据

重点:

  • 根据表中的主键或唯一索引来判断,如果表中没有主键或唯一索引,那么REPLACE INTO 就相当于 INSERT

INTO,会直接插入一条数据。

总结

到此这篇关于Mysql中Replace语句用法详解的文章就介绍到这了,更多相关mysql Replace用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中Replace语句用法实例详解

本文链接: https://www.lsjlt.com/news/33528.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中Replace语句用法实例详解
    目录前言一、replace into函数二、replace into 、insert ignore 和 insert into的区别三、replace函数总结前言 replace into平时在开发中很少用到,这次是因为...
    99+
    2022-08-08
    mysql的replace用法 mysql中replace mysql中replace语句
  • MySQL into_Mysql中replace与replace into用法案例详解
    Mysql replace与replace into都是经常会用到的功能;replace其实是做了一次update操作,而不是先delete再insert;而replace...
    99+
    2022-11-12
  • MySQL 5.7中REPLACE语句怎么用
    这篇文章主要介绍MySQL 5.7中REPLACE语句怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! REPLACE类似INSERT,会以主...
    99+
    2022-10-18
  • MySQL中replace into语句怎么使用
    在MySQL中,`REPLACE INTO`语句用于插入新记录或更新已存在的记录。它的语法如下:```sqlREPLACE INTO...
    99+
    2023-09-14
    MySQL
  • mysql存储过程之if语句用法实例详解
    本文实例讲述了mysql存储过程之if语句用法。分享给大家供大家参考,具体如下: mysql中的 IF语句允许我们根据表达式的某个条件或值结果来执行一组SQL语句,所以我们要在MySQL中形成一个表达式,可...
    99+
    2022-10-18
  • MySQL中EXPLAIN语句及用法实例
    目录前言EXPLAIN 语法如下:1、获取表结构2、获取执行计划信息3、使用 EXPLAIN ANALYZE 获取信息总结 前言 在MySQL中 DESCRIBE 和 EX...
    99+
    2022-11-13
  • MySQL中replace into 语句的作用是什么
    这期内容当中小编将会给大家带来有关MySQL中replace into 语句的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在主库上操作。  代码...
    99+
    2022-10-18
  • mysql学习笔记之完整的select语句用法实例详解
    本文实例讲述了mysql学习笔记之完整的select语句用法。分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group ...
    99+
    2022-05-20
    mysql select语句
  • MySQL中SQL命令语句条件查询实例详解
    目录一、聚合函数二、分组查询三、连接查询四、子查询五、数据库设计三范式及E-R模型六、外键约束总结一、聚合函数 聚合函数:又叫组函数,用来对表中的数据进行统计和计算,结合group by分组使用,用于统计和计算分组数据 ...
    99+
    2022-11-08
  • MySQL中几种插入和批量语句实例详解
    目录前言1.insert ignore into 2.on duplicate key update 3.replace into 4.insert if not exis...
    99+
    2022-11-12
  • MySQL中怎么使用replace into语句处理出错
    这篇文章给大家分享的是有关MySQL中怎么使用replace into语句处理出错的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。replace into实现原理如果新插入行的主键或唯一键在表中已经存在,...
    99+
    2023-06-14
  • sql语句中临时表使用实例详解
    目录一、临时表实现分步处理1.概述2.实例2.1表格结构2.2需求2.3sql语句2.4sql语句解析二、临时表实现分层处理1、概述2、实例2.1表结构2.2需求2.3sql语句2.4sql语句解析一、临时表实现分步处理...
    99+
    2023-02-16
    SQL临时表使用 SQL临时表
  • mysql用户变量与set语句示例详解
    1 用户变量介绍 用户变量即用户自己定义的变量,我们可以给用户变量分配值,并且可用在任何可以正常使用标量表达式的地方。 引入用户变量之前我们必须使用set语句或select语句来定义它,然后为它赋一个值,...
    99+
    2022-05-27
    mysql使用set类型 mysql定义变量 mysql 设置变量
  • python中if-elif-else语句实例用法讲解
    1、判断多个条件的语句,if为真则执行if后面的语句。 2、如果elif是真的,则执行elif,后面的代码块不执行。 3、如果if和elif不满意,执行else语句。 实例 if...
    99+
    2022-11-12
  • 详解mysql DML语句的使用
    前言: 在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了。本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作。 这里说明下DDL与DML语句的分类,可能有的同学还不太清楚。 DDL(...
    99+
    2022-05-28
    mysql dml mysql dml语句
  • MySQL Select 查询语句详解及高级用法
    MySQL是一个开源的关系型数据库管理系统,支持多种操作语言,其中最基础、最常用的命令之一就是SELECT语句。在本篇文章中,这里将详细介绍MySQL SELECT语句的各个方面,从最基本的查询语句,到更高级的技巧和功能。 一、基本...
    99+
    2023-10-01
    mysql 数据库 sql
  • java逻辑控制语句实例详解
    一、Java选择结构if(条件)…else结构当条件==true时执行if下的语句,否则执行else下的语句if(条件1)…else if(条件2)…else结构(相关视频教程推荐:java视频教程)当条件1==true时执行if(条件1)...
    99+
    2017-11-09
    java入门 java 逻辑控制 语句 详解
  • MySQL中的SQL标准语句详解
    目录前言对数据库的操作对表的操作表的创建表的插入表的修改表的删除表的查询条件查询前言 例如mysql中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持!当然,oracle或SQL Server都有自己的方言。...
    99+
    2022-09-19
  • MySQL基础入门之Case语句用法实例
    目录引言CASE 的语法CASE 语句在 mysql 中是如何工作的?带有 SELECT 和 ORDER BY 子句的 CASE 语句具有聚合函数的 CASE 语句补充:case行转列用法总结引言 MySQL C...
    99+
    2022-08-08
    mysql case语句 sql语句case用法 mysql中的case
  • Python中import语句用法案例讲解
    目录一. 什么是模块(module)?二. 模块是如何组织的三. 如何导入模块?1. 命名空间3. from … import … 的运行机制五. 导入模...
    99+
    2022-12-29
    Python import语句用法 Python import用法 Python import语句
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作