mysql解决插入根据某条件判断是否插入

server/2024/11/14 20:59:44/

exists :如果子查询查询到了列那么就为真。

not exists : 如果子查询查询不到结果则返回值为真。

如果配合 insertinto、select、update、delete的where 条件使用,就能根据某些条件,先判断条件是否满足在做相应的操作。

示例:

用户做报警插入时,需要要传入一个报警周期时间filterTime,在这个周期内不存在同样的一条记录才做新增,否则不需要新增,避免频繁报警。

INSERT INTO work_alarm_record(create_time, alarm_time, alarm_state,alarm_content,foreign_name,foreign_id,device_id,var_id)SELECT NOW(),#{insertDO.alarmTime},#{insertDO.alarmState}, #{insertDO.alarmContent},#{insertDO.foreignName},#{insertDO.foreignId},#{insertDO.deviceId},#{insertDO.varId}
FROM dualWHERE not exists (SELECT id FROM work_alarm_record WHERE (alarm_state  = 4 or alarm_state  = 2)and var_id = #{insertDO.varId} and alarm_time > #{filterTime} ORDERBY alarm_time desc limit 1);

DUAL表

 MySQL中的DUAL表是一个虚拟表,用于返回一个行。DUAL表只包含一列和一行数据

* 做条件判断是需要借助DUAL表才能完成。


http://www.ppmy.cn/server/6587.html

相关文章

axios的跨越封装

开发环境需要配置代理devServer: {// host: localhost, // ip 本地// open: true, // 配置自动启动浏览器port: 3000, // 设置端口号proxy: {/api: { // 接口以api开头的才用代理target: 服务器ip, //axiso实例里的baseURL的值(后端路径)changeOrigin: t…

RHCE ssh练习之远程连接服务实战

项目要求 一.配置两台主机 主机1. 主机名: server.example.com ip: 172.25.254.100 建立用户timinglee,其密码为timinglee 主机2 主机名:client.example.com ip: 172.25.254.200 二.安需求完成项目 172.25.254.200 在远程登录172.25.254.100的root用户时…

《机器学习by周志华》学习笔记-线性模型-02

1、对数几率回归 1.1、背景 上一节我们考虑了线性模型的回归学习,但是想要做分类任务就需要用到上文中的广义线性模型。 当联系函数连续且充分光滑,考虑单调可微函数,令: 1.2、概念 找一个单调可谓函数,将分类任务的真实标记与线性回归模型的预测值联系起来,也叫做「…

可视化大屏的应用(13):在能源环保领域的五大用武之地

可视化大屏在能源环保领域具有重要的应用价值。以下是一些主要的应用价值: 数据监控与分析 可视化大屏可以实时展示能源使用情况、环境污染指标、能源产量和消耗等数据。通过直观的数据可视化,能够帮助能源管理人员和环保专家更好地监控和分析数据&…

从三大层次学习企业架构框架TOGAF

目录 前言 掌握TOGAF的三个层次 层次1:怎么学? 层次2:怎么用? 层次3:怎么思? 结束语 前言 对于一名架构师来讲,如果说编程语言是知识库层次中的入门石,那么企业架构框架则相当…

Linux编辑器-vim的使用

vim的基本概念 vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下&#…

【氮化镓】微波脉冲对GaN HEMT失效的影响

本文是一篇关于高功率微波脉冲作用下GaN HEMT(高电子迁移率晶体管)热电多物理场耦合失效的实验研究。文章由Xiangdong Li等人撰写,发表在2023年11月的《IEEE Transactions on Electron Devices》上。文章通过实验研究了在高功率微波脉冲应力下…

XiaodiSec day027 Learn Note 小迪渗透学习笔记

XiaodiSec day027 Learn Note 小迪渗透学习笔记 记录得比较凌乱,不尽详细 27day 还是 sql 知识点 数据类型注入: 数字型,字符型,搜索型,加密型 开始 数字型 数字型是 0-9 字符型 字符型是 a-z 等 在接收 sql …