【问题标题】:MySQL: Compare two TABLES and list rows that are new?MySQL:比较两个表并列出新的行?
【发布时间】:2013-04-18 06:23:14
【问题描述】:

我们有每日数据馈送。我需要确定哪些行是新的。 (说来话长,但行没有记录号,也不会有。)我们需要能够识别自上次数据馈送以来哪些行是新的。该文件以 JSON 格式出现,我已将其放入 MySQL TABLE 以用于其他目的。

如何获取昨天的 TABLE 并将其与今天的 TABLE 进行比较,并显示自昨天以来添加的那些行?这一切都可以在 MySQL 中完成,还是我需要借助 PHP 来完成?

如果我在 PHP 中执行此操作,我想我会用昨天的 TABLE 搜索今天的 TABLE,并在今天的 TABLE 中标记(添加的列),称为 NEW,当它找到时带有“N”。 “Y”将是默认值,这意味着该行是新的。然后使用 MySQL 执行 select where new="Y" ,这将显示新字段。这是怎么做的?我是否忽略了更好的方法?谢谢!

【问题讨论】:

  • 添加行时是否有时间戳列?
  • 如果您在创建数据时为数据存储了时间,您可以通过时间操作来实现您的目标..
  • 来源没有时间戳,只有我在每日feed下载数据时添加的那个。
  • 两个表都有哪些列?
  • 您实际上有两个单独的表(今天一个,昨天一个)?

标签: php mysql


【解决方案1】:

如果您实际上有两个单独的表(从您的描述中听起来是这样,但很奇怪)并且没有在字面上比较同一个表,您可以

  SELECT partnumber FROm Today_table where partnumber not in (select partnumber from Yesterday_table)

【讨论】:

  • 这只是一种方法,您也可以使用带空条件的左连接或MINUS(但不是在 MySQL 中)
猜你喜欢
  • 1970-01-01
  • 2013-03-03
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
相关资源
最近更新 更多