如何使用一条mysql语句实现如果查询到的数据不存在就创建

你把这张表的 date和ip字段联合设置为唯一索引。ALTER TABLE `log` ADD UNIQUE `date_ip` (`date`, `ip`);然后你就大胆的insert数据吧。有重复的就报错插入失败。然后接着插入下一条就OK。
如何使用一条mysql语句实现如果查询到的数据不存在就创建
一条语句实现的方法不如存储过程方便,而且不如存储过程效率高,楼主写个存储过程会比较好

INSERT INTO log (date, ip) SELECT '2014-01-01' as date, '192.168.1.1' as ip FROM log WHERE NOT EXISTS ( SELECT * FROM log t WHERE t.data = '2014-01-01' AND t.ip = '192.168.1.1')2014-01-17
你把这张表的 date和ip字段联合设置为唯一索引。
ALTER TABLE `log` ADD UNIQUE `date_ip` (`date`, `ip`);然后你就大胆的insert数据吧。有重复的就报错插入失败。然后接着插入下一条就OK。
2014-01-19
-- 我这里假设你那个 id 是 自动递增的主键.INSERT INTO log (date, ip)SELECT '2014-01-01', '192.168.1.1' FROM dualWHERE NOT EXISTS ( SELECT * FROM log t WHERE t.data = '2014-01-01' AND t.ip = '192.168.1.1')2014-01-17
mysql 有判断语法

有四种方式进行判断:1. SHOW TABLES LIKE '%tb_bp_d_case%';2. select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA='dbname' and TABLE_NAME='tablename' ;3. 如果表不存在就建立这个表,那么可以直接用 create table if not exists tablename 这样的指令来建立,不需要先去查询表是否存在。4. 从模板表创建表:create table if not exists like old_table_name;

自己去套2014-01-17
INSERT INTO log (date, ip) SELECT '2014-01-01' as date, '192.168.1.1' as ip FROM log WHERE NOT EXISTS (
SELECT *
FROM log t
WHERE t.data = '2014-01-01' AND t.ip = '192.168.1.1'
)2014-01-17
这里有答案
存在则更新,否则新增(ON DUPLICATE KEY UPDATE)(Mysql)
2020-03-18
mengvlog 阅读 80 次 更新于 2025-09-09 11:14:08 我来答关注问题0
  •  翡希信息咨询 一条SQL语句在MySQL中是如何执行的?

    语法分析:通过yacc语法分析器,检查SQL语句是否符合语法规则,如单引号是否闭合等。解析完成后,将SQL语句转换成解析树(select_lex)对象。预处理:根据MySQL的语法规则对解析树对象进行合法性检查,如检查表名、列名是否存在,确保没有歧义。预处理后得到一个新的解析树。优化器生成执行计划:成本计算:优...

  •  翡希信息咨询 MySQL—一条查询SQL语句的完整执行流程

    如果查询缓存没有命中,MySQL会进入正式的查询阶段。首先,MySQL需要对接收到的查询字符串进行词法分析和语法分析。词法分析器会将查询字符串分割成一个个的单词或符号,如SELECT、FROM、表名、列名等。然后,语法分析器会根据MySQL的语法规则检查这些单词或符号是否构成了一个合法的查询语句,并生成一个解析...

  •  云易网络科技 MySQL中一条语句匹配多条记录的方法mysql一匹配多

    其中,column_name是要进行比较的列名,table_name是要查询的表名,value1、value2等是要进行比较的值。需要注意的是,如果要比较的值是一个子查询的结果,需要使用括号将子查询括起来。Example:我们有一张表student,其中存储了学生的姓名和成绩。我们想要查询成绩高于80分的学生的姓名。可以使用以下语句...

  •  云易网络科技 MySQL原子操作一条简单语句解决事务中的并发问题mysql一条语句原子

    1. 创建一个测试表 我们需要创建一个测试表,执行以下SQL语句:CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`value` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900__ci;2. 开始一个事务 接下来...

  • 一列字段相加的实现方法就是使用SUM()操作符进行求和操作,然后根据需求对操作的列和条件进行指定。如果需要对数据进行分组或取前N条数据进行操作,需要使用GROUP BY和LIMIT子句。综上所述,MySQL实现一列字段相加比较简单,我们只需要使用SELECT语句结合SUM()操作符即可。但需要注意的是,如果数据量比较大...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部