这儿有一个order表,脚本我放在最后,
我想在insert之前判断order_name是否存在,不存在则保存,存在则不保存。
但是MySQL insert语句是不能跟where子句的,像这样:

INSERT INTO `order` (order_name) VALUES ('订单3') WHERE NOT EXISTS (SELECT order_id FROM `order` WHERE order_name = '订单3');

会报错,

INSERT INTO `order` (order_name) VALUES ('订单3') WHERE NOT EXISTS (SELECT order_id FROM `order` WHERE order_name = '订单3')
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT order_id FROM `order` WHERE order_name = '订单3')' at line 1
> 时间: 0s

我们可以修改成insert select语句:

INSERT INTO `order` (order_name) SELECT '订单3' FROM DUAL WHERE NOT EXISTS (SELECT order_id FROM `order` WHERE order_name = '订单3');

这样就能实现我们的需求。

SQL脚本

-- ----------------------------
-- Table structure for order
-- ----------------------------
DROP TABLE IF EXISTS `order`;
CREATE TABLE `order`  (`order_id` int NOT NULL AUTO_INCREMENT COMMENT '订单ID',`order_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '订单名称',`order_amount` int NULL DEFAULT NULL COMMENT '订单金额',PRIMARY KEY (`order_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of order
-- ----------------------------
INSERT INTO `order` VALUES (1, '订单1', 70);
INSERT INTO `order` VALUES (2, '订单2', 80);
INSERT INTO `order` VALUES (3, '订单3', 90);

MySQL insert into where 去重复相关推荐

  1. mysql语句中怎么去重复_mysql中删除重复记录sql语句

    在sql中我们经常会碰到有重复的一些数据,下面我来介绍在mysql中删除重复记录的多种方法,有需要的朋友可参考参考. 删除重复记录方法一: 1. 新建一个临时表 代码如下 复制代码 create ta ...

  2. mysql根据两列去重复_mysql对两列去重复数据库

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. mysql单列去重复group by分组取每组前几条记录加order by排序

    <div class="post"><h1 class="postTitle"><a id="cb_post_title ...

  4. 爬虫 spider09——爬取指定数据,去重复,并存储到mysql

    爬取指定数据,去重复,并存储到mysql. 技术栈:Springboot+ssm+定时(定时器)爬取+redis去重+mybatis保存 一.创建父项目Spider pom.xml <?xml ...

  5. mysql的联表查询和去重复数据

    mysql的联表查询和去重复数据 /* SQLyog Ultimate v10.00 Beta1 MySQL - 5.7.17-log : Database - pusmtnew ********** ...

  6. mysql分区表去重复_MySQL分区表管理

    RANGE,LIST分区管理 1:为未分区表创建分区 ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2; 2:删除某个分区的数据 ALTER TAB ...

  7. Mysql数据库查询去除重复_mysql数据库如何去重复数据

    mysql数据库去重复数据的方法: 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据 ...

  8. sql distinct 去重复 (mysql)

    DISTINCT 去重复 (运动扭伤腰...悲伤... (▼ _ ▼) ) 首先,例如我们的表: 首先观察表: 其中第二行和第三行和第八行的name1的只是重复的,但第八行的age1确是12,与第二行 ...

  9. mysql 去重复屈居_mysql去重复关键字distinct的用法

    distinct的去重复的提前是表中所有列的数据完成相同时,才能把相同的数据只保留一条,并不是 distinct 列名,除去某一列相同的数据,并且 distinct要放在第一个列前面.案例如下:一个学 ...

最新文章

  1. Matlab求方差,均值,均方差,协方差的函数
  2. 喧哗的背后:Serverless 的概念及挑战
  3. 学习笔记27—python中numpy.ravel() 和 flatten()函数
  4. SAP Spartacus BrowserPlatformLocation的初始化逻辑
  5. hibernate mysql分页_求struts+hibernate实现mysql分页的详细代码
  6. c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)
  7. SpringMVC 文件上传及下载
  8. 为什么我不使用 Web 组件?
  9. 深度有趣 | 29 方言种类分类
  10. amd编码器 hevc_【硬件资讯】8K实时渲染?AMD做到了,但代价是……
  11. mysql5.5默认引擎,在MySQL5.5以上系统中,默认的存储引擎是( )。
  12. html浏览xsd,那点你不知道的XHtml(Xml+Html)语法知识(DTD、XSD)
  13. oracle 亿级数据存储方案
  14. WINDOWS下多个桌面切换
  15. python inputs[:,::2,::2,:]
  16. EGPU use in NUC about ubuntu20.04.5
  17. Markdown/KaTeX/LaTeX语法、工具及模板大全(持续更新ing...)
  18. Cesium之鼠标事件绑定和移除
  19. HBase技术与应用实践 | HBase2.0重新定义小对象实时存取
  20. 设备跟服务器对接需要什么文档,『OneNET设备云平台』云平台对接服务_智能设备...

热门文章

  1. DN-Detr环境配置
  2. gpu超频超额训练导致电源关机
  3. minijson使用_JSON教程介绍
  4. CSDN排名(持续更新)
  5. 虚幻引擎5 C++编程学习4
  6. Maluuba人工智能的阅读理解力最佳
  7. 2008服务器系统启动不了网,活用Windows Server 2008命令 解决网络疑难杂症
  8. dom4j java_DOM4J
  9. 软件测试需要学什么(个人软件测试学习路线)
  10. xmpp java 服务器搭建_XMPP环境搭建