mysql - 如何在不与 sql 中的其他表比较的情况下显示不在表中的数据
问题描述
我有一张名为 FILEINFO 的表。每天都会出现一些文件名(大约 100 个)。我需要检查名称是否存在于表中。在单个查询中
提前致谢
解决方案
我不知道这是否适合您的数据管道,但这里一种干净的方法是将这些新传入的文件名写入某种表(临时或永久)中,然后使用简单的存在查询来检查它们是否已经存在于您当前的表中,例如
SELECT filename AS new_file
FROM temp_names t1
WHERE NOT EXISTS (SELECT 1 FROM FILEINFO t2 WHERE t2.filename = t1.filename);
如果您只想插入新文件名,您可以使用类似的逻辑,例如
INSERT INTO FILEINFO (filename)
SELECT filename
FROM temp_names t1
WHERE NOT EXISTS (SELECT 1 FROM FILEINFO t2 WHERE t2.filename = t1.filename);
推荐阅读
- javascript - Codewars Challenge - JavaScript - 查找数组中的第一个非连续数字
- spring - 带有键值类型消息的spring cloud stream SOURCE
- r - time-zones.rd 文件移到了哪里?
- spring-boot - 从一个微服务到另一个微服务的 WebClient 构建器调用在 Webflux 中首次出现错误的请求错误
- swift - 为什么我的孩子 SwiftUI 视图没有更新?
- javascript - JSX 组件不渲染状态图
- javascript - 如何从 FormGroup 获取值输入表单
- java - 如何在我的 java lambda 函数中包含和使用命令行工具?
- arduino - LoRa 模块不连续发送消息
- c - 不同的指针类型在 c 中缺少强制转换