【问题标题】:Find all strings that do not exist in table column查找表列中不存在的所有字符串
【发布时间】:2015-11-02 20:30:24
【问题描述】:

我有一个包含 338 个字符串的列表,如下所示:

013705
013707
013708
013709

如何获取所有存在于我的表/列中的字符串:tblclients.clientID

我尝试了以下方法:

SELECT clientID FROM tblclients WHERE clientID NOT IN (
000100,
000834,
001855,
etc...)

但这只会返回我的表中不存在于我的字符串列表中的值。我需要相反的:我列表中的字符串,表中不存在。我想知道这是否可以通过 SQL 实现,或者我是否需要以某种方式使用 Excel...?

【问题讨论】:

  • 你知道最小和最大可能值吗?
  • @PM77-1 是的,我只是将它们放入 Excel 并对其进行排序。我有最小值和最大值(尽管它们实际上是字符串,而不是数字,因为它们从零开始)
  • 在检查条件时将其转换为数字,并执行 BETWEEN 语句。
  • 制作临时表并选择反转 - 不在主表中
  • select * from (values (1), (2), (3)) x(number) 在 MySQL 中工作吗?如果是这样,那是一条你可以走下去的路。

标签: mysql


【解决方案1】:

如果您要测试的数字在 YourNumbers 中,那么您可以运行如下查询:

SELECT clientID 
FROM YourNumbers y
LEFT JOIN TblClients t ON y.clientID = t.clientID
WHERE clientID IS NULL

【讨论】:

  • 问题表明数字不在表格中。
  • @User15 - 我读到 OP 想要找到不在他的主表中的数字。要比较的数字必须存储在某个地方。我的解决方案为此使用了一个临时表。
猜你喜欢
  • 2019-02-17
  • 2020-11-08
  • 2013-10-06
  • 2020-05-22
  • 2021-01-14
  • 2022-10-19
  • 2011-06-21
  • 2019-07-21
  • 1970-01-01
相关资源
最近更新 更多