MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等

这篇具有很好参考价值的文章主要介绍了MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

使用MySQL的删、改、查功能时,我们都可以根据where条件来对指定数据进行操作。

插入语句如何通过where条件,来判断是否允许插入呢?

根据条件插入数据

1、先准备测试数据

MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等

2、正常的插入语句

insert into `test_table` (id, content)  values('3', '内容3');

此时表里有三条数据了:
MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等

3、有条件的插入语句(重点)

insert into `test_table` (id, content)
select * from (select '4' AS id, '内容4' AS content) as tmp 
where not exists ( select 1 from `test_table` where id = 1 ) limit 1;

上面sql执行结果:

insert into test_table (id, content)
select * from (select ‘4’, ‘内容4’) as tmp
where not exists ( select 1 from test_table where id = 1 ) limit 1
Affected rows: 0
时间: 0.018s

insert into `test_table` (id, content)
select * from (select '4' AS id, '内容4' AS content) as tmp 
where not exists ( select 1 from `test_table` where id = 4 ) limit 1;

上面sql执行结果:

insert into test_table (id, content)
select * from (select ‘4’, ‘内容4’) as tmp
where not exists ( select 1 from test_table where id = 4 ) limit 1
Affected rows: 1
时间: 0.018s

4、查看最终结果

MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等

5、使用INSERT IGNORE INTO(重点)

insert ignore into `test_table` (id, content)  values('3', '内容3');

insert ignore into test_table (id, content) values(‘3’, ‘内容3’)
Affected rows: 1
时间: 0.024s

insert ignore into test_table (id, content) values(‘3’, ‘内容3’)
Affected rows: 0
时间: 0.023s

如果有唯一性约束,可以使用INSERT IGNORE INTO,判断插入的行数。

总结分析

我们使用insert into语句做了个取巧,我们都知道insert into语句有以下用法:

-- 插入一条
INSERT INTO t1(field1,field2) VALUE(v001,v002);

-- 批量插入
INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202),(v301,v302),(v401,v402);

-- 指定字段
INSERT INTO t2(field1,field2) SELECT col1,col2 FROM t1 WHERE ……

-- 当t2、t1表结构相同时
INSERT INTO t2 SELECT id, name, address FROM t1

我们这里使用第三种方式,自定义了一个临时表,临时表的数据就是我们要insert的数据,此时的临时表就可以写where条件了!文章来源地址https://www.toymoban.com/news/detail-408006.html

到了这里,关于MySql按条件插入数据,MySQL插入语句写where条件,MySQL在插入时做幂等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql join加多条件与where的区别

    最近在项目中遇到一个问题,感觉有点意思,在解决问题及查阅了相关资料后,打算写篇文章给朋友们分享一下。 问题现象: 问题是很常见的空指针问题,后端查询数据库数据,遍历进行相关业务处理时报空指针。通过断点调试发现问题就出在查询回来的数据上,返回的L

    2024年02月11日
    浏览(30)
  • MySQL中使用IF子查询实现条件判断(where之后用if)

    废话不多说,直接上代码

    2023年04月23日
    浏览(49)
  • mysql查询语句中,是join先执行还是where先执行?

    在 MySQL 中,WHERE 子句会先于 JOIN 子句执行。 JOIN 子句用于连接两个或多个表,在 JOIN 子句中可以使用 ON 或 USING 子句来指定连接条件。 JOIN 子句会从两个表中返回符合连接条件的行,这些行会被合并成一个结果集。 而 WHERE 子句用于过滤查询结果集中的行,它可以使用各种条

    2024年02月14日
    浏览(28)
  • SQL 语句中 where 条件后 写上1=1 是什么意思

    程序员在编程过程中,经常会在代码中使用到“where 1=1”,这是为什么呢? SQL注入 初次看到这种写法的同学肯定很纳闷,加不加where 1=1,查询不都一样吗?例如: 查询出来的结果完全没有区别呀。 是的,上面的查询结果是没有区别,但是这并不是我们要添加它的目的。我们

    2024年01月21日
    浏览(28)
  • mysql批量插入insert语句

    在MySQL中批量插入数据有几种方法,下面我将介绍其中两种常用的方法: 这是一种简单的方式,可以一次性插入多个值。以下是一个示例: 在上面的示例中,你需要替换your_table_name为你的表名,列名和相应的值。你可以一次性插入多行数据。 另一种批量插入数据的方法是使

    2024年02月06日
    浏览(33)
  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(45)
  • MySQL 参考文档:SQL 语句优化(SELECT 语句优化)之索引条件下推(索引下推)优化

    索引下推优化官方文档说明 (Section 8.2.1.5):https://dev.mysql.com/doc/refman/5.7/en/index-condition-pushdown-optimization.html 1. 什么是索引下推? qquad 索引条件下推 (Index Condition Pushdown,ICP) 是 MySQL 在使用索引从表中检索行时的一种优化方法。在没有 ICP 的情况下,存储引擎遍历索引以定位基

    2024年02月16日
    浏览(30)
  • MySQL 判断语句 条件函数 case when、if、ifnull

    在MySQL中,需要用到条件判断函数,例如 case when、if、ifnull。 (1)if 注意: 一个条件表达式两个结果 expr :条件表达式; 如果结果为true,则返回result_true,否则返回result_false。 (2)ifnull 注意: 如果查询结果是 null ,就转换为特定的值 result :查询结果; value :如果查询结

    2024年02月04日
    浏览(58)
  • 【mysql 插入数据问题】MySQL插入数据阻塞问题及优化方案

    摘要:本文主要介绍了MySQL数据库在插入数据时出现阻塞的常见原因,以及如何查看和优化这些问题。通过分析慢查询日志、优化索引、优化数据类型、批量插入等手段,可以有效地提高MySQL数据库的插入性能。 一、引言 MySQL作为一款广泛应用于各类项目的开源数据库,其性

    2024年02月02日
    浏览(33)
  • 简明SQL条件查询指南:掌握WHERE实现数据筛选

    条件查询是用于从数据库中根据特定条件筛选数据行的一种方式,它避免了检索整个表中的数据。通常,使用 WHERE 子句来定义过滤条件,只有符合这些条件的数据行才会被返回。 SQL中的运算符有:=、!=、、 等,用于进行条件判断。 在逻辑运算中,常见的运算符包括: and:

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包