mysql insert or update

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql insert or update相关的知识,希望对你有一定的参考价值。

参考技术A 在某些业务场景中,我们可能会有这样一种需求(很难受的是我还没有遇到):

mysql研发人员可能早就料到你会有这种骚操作, on duplicate key update (有重复key时更新)就可以解决你的这一痛点。
下面我们举一个例子:

注意: 创建表的时候是指定了主键列的。我们不使用MySQL的自增方式,而是自己来生成主键列的值,比如使用 UUID 。

我们会发现当我们执行该条insert语句时就会报错,因为主键值重复了。ok,那有没有这种可能:如果主键值重复了,那么就执行更新操作,而不是报错。接下来就是今天的重头戏

执行成功!
ok,今天的分享结束啦!

MySQL中INSERT,UPDATE和REPLACE的区别与用法

insert是插入数据
update是更新数据

择列表
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
SELECT * FROM testtable
2、选择部分列并指定它们的显示次序
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
3、更改列标题
在选择列表中,可重新指定列标题。定义格式为:
列标题=列名 列名 列标题
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=email FROM testtable。
4、删除重复行
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
参考技术A insert是插入语句,update是修改,replace是替换。
用法例:insert into 表 value(字段名1,字段名2)
update 表名 set name=xiaoming where name=xiaoqiang. 这样名字就被改了
UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def');
REPLACE(str,from_str,to_str)
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串

这个函数用来批量替换数据中的非法关键字是很有用的!如下例子:

例1:UPDATE BBSTopic SET tcontents = replace(replace(tcontents,'共产党','') ,'找死','') where tcontents like '%共产党%' or tcontents like '%找死%'
例2:UPDATE typetable SET type_description=REPLACE(type_description,'360','http://www.jb51.net');

记得给分啊!!!

以上是关于mysql insert or update的主要内容,如果未能解决你的问题,请参考以下文章

mysql insert buffer 详解

MySQL INSERT ON DUPLICATE KEY UPDATE

mysql save or update

MySQL中INSERT,UPDATE和REPLACE的区别与用法

mysql建索引导致insert失败

高效开发:详解mybatis的select,insert,delete,update返回值。