文章目录

  • 写在前面
  • 根据条件插入数据
    • 1、先准备测试数据
    • 2、正常的插入语句
    • 3、有条件的插入语句(重点)
    • 4、查看最终结果
  • 总结分析

写在前面

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

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

根据条件插入数据

1、先准备测试数据

2、正常的插入语句

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

此时表里有三条数据了:

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

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;

上面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', '内容4') 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、查看最终结果

总结分析

我们使用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条件了!

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

  1. MySQL查询本年的数据的sql语句

    MySQL查询本年的数据的sql语句: SELECT * FROM 表名 WHERE YEAR(时间字段)=YEAR(NOW());

  2. mysql教程中插入语句_mysql中插入数据Insert into语句用法

    在mysql中要向数据库中保存数据我们最常用的一种方法就是直接使用Insert into语句来实现了,下面我来给大家详细介绍Insert into语句用法 INSERT用于向一个已有的表中插入新行.I ...

  3. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错?

             这几天在做一个Javaweb的图书商城项目,在操作数据库的过程中,遇到一个问题? 向数据库中的order数据表中插入数据时,一直插入数据失败.没有报SQL语句语法错误,Eclipse ...

  4. mysql数据库插入数据为空_用java向mysql数据库中插入数据为空

    利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util ...

  5. SQL (十四)插入数据(insert语句,把数据插入表中)

    文章目录 插入完整的行:values子句 不安全写法 安全写法:在表名后的括号明确给出列名 小结 插入行的一部分:简单 插入某些查询的结果(即检索出的数据):insert select 示例:把另一个 ...

  6. 在表中插入数据的SQL语句

    1.插入数据:insert  into 表名  values(值列表)[,(值列表)];       可以一次性插入多条数据. 2.给部分字段插入数据:insert into 表名  (字段列表) v ...

  7. php创建表并插入数据,php数据库操作-创建库和表以及插入数据

    以上我们正确连接到了mysql数据库,本文将进一步创建数据库,表,在表中填充数据. 大家知道连接上数据库才能进行操作,同样的代码搬过来 /* * 数据库操作*(创建数据库,表,插入数据,插入多条数据) ...

  8. 连接mysql数据库格式_MySQL_Mysql数据库命令大全,一、连接Mysql格式: mysql -h - phpStudy...

    Mysql数据库命令大全 一.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令 ...

  9. java如何向数据库中插入数据_如何控制Java代码向数据库中插入数据

    慕哥6287543 Java程序向数据库中插入数据,代码如下:123456789101112131415161718192021222324252627282930313233343536373839 ...

最新文章

  1. type=file的未选择任何文件修改_PDF文件怎样输入到CAD图纸中?懂得这个功能可以快速实现...
  2. 数据结构特性解析 (一) 数组
  3. boost signals2 coroutine
  4. 体验VS2017的Live Unit Testing
  5. python画饼图_百度飞桨PaddlePaddle之[Python小白逆袭大神]7天训练营
  6. 弱网测试用什么农_弱网测试--使用fiddler进行弱网测试
  7. 基于Docker+Gitlab搭建Spring Cloud分布式配置中心
  8. solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)
  9. Asp.Net Web API 2第十四课——Content Negotiation(内容协商)
  10. 解决Myeclipse中断点不起作用的方法
  11. 英伟达显卡排名天梯图2022
  12. Exadata一体机故障回顾
  13. 中小型园区网典型配置
  14. 帆软报表更新到服务器控件展示不出来_报表工具软件FineReport常见问题与解答总结...
  15. “开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用
  16. mac要装anaconda吗_在Mac OS X上安装Anaconda
  17. 解决ERROR: distribution port 25672 in use by another node: rabbit@
  18. MxNet系列——how_to——multi_devices
  19. 2021年茶艺师(中级)复审考试及茶艺师(中级)复审模拟考试
  20. 魔兽争霸 java_魔兽maphack其实很简单

热门文章

  1. Windows Mobile 6.5 安装 QQ 正式版本后无法浏览 WSP 网页的问题!
  2. CO13N取消报工检查
  3. 企业视频宣传片制作、存储与应用(常见问题汇总)
  4. 实现QQ主界面效果[图] 1
  5. Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法
  6. SIP认证中Qop的字段使用注意
  7. 锐龙4000系列运行matlab,性能提升60%!AMD锐龙运行Matlab恢复正常
  8. 若秋叶静离枝淡对离别
  9. 极速office(Word)怎么在空白处添加下划线
  10. Android组件化方案最佳实践