前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >msyql查询数据库中不存在的记录

msyql查询数据库中不存在的记录

作者头像
用户10002156
发布2023-08-07 10:54:30
2670
发布2023-08-07 10:54:30
举报
文章被收录于专栏:生活处处有BUG

背景

有时候,需要往数据库里插入数据,这些数据,有些已经在MySQL中。但这种导入的工作,只是临时性的,又想专门写一个脚本去判断是否存在数据库,不存在就插入。这里提供一个骚操作,可以直接用MySQL查看哪些不在数据库的,然后再插入。

创建 "user" 表

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS user (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255)
);

插入用户数据

代码语言:javascript
复制
INSERT INTO user (name) VALUES ('zhangsan'), ('wangwu'), ('zhaoliu');

查看插入的数据

代码语言:javascript
复制
SELECT * FROM user;

mysql> select * from user;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | wangwu   |
|  3 | zhaoliu  |
+----+----------+
3 rows in set (0.00 sec)

查看存在的数据

你可以使用以下查询语句来判断 "zhangsan" 和 "lisi" 是否在数据库中.如果 "zhangsan" 和 "lisi" 存在于数据库中,那么可以查询将返回它们的名字。

代码语言:javascript
复制
SELECT name FROM user WHERE name IN ('zhangsan', 'lisi');

mysql> SELECT name FROM user WHERE name IN ('zhangsan', 'lisi');
+----------+
| name     |
+----------+
| zhangsan |
+----------+
1 row in set (0.00 sec)

查找不存在的数据

如果你想知道哪个名字不在数据库中,可以稍作修改,使用 NOT IN 来找出不在数据库中的名字

代码语言:javascript
复制
SELECT 'zhangsan' AS name WHERE 'zhangsan' NOT IN (SELECT name FROM user)
UNION ALL
SELECT 'lisi' AS name WHERE 'lisi' NOT IN (SELECT name FROM user);


mysql> SELECT 'zhangsan' AS name WHERE 'zhangsan' NOT IN (SELECT name FROM user)
    -> UNION ALL
    -> SELECT 'lisi' AS name WHERE 'lisi' NOT IN (SELECT name FROM user);
+------+
| name |
+------+
| lisi |
+------+
1 row in set (0.00 sec)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 创建 "user" 表
  • 插入用户数据
  • 查看插入的数据
  • 查看存在的数据
  • 查找不存在的数据
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档