将数据与数据库中的表进行比较

时间:2011-01-02 02:14:31

标签: php mysql database excel csv

我以CSV格式接收原始数据,并将其上传到MySQL数据库中的表格(我的网站运行在其上)。我想比较一个较新的CSV与我从较旧的CSV上传的数据,我想看到两者之间的差异(基本上我想用表格区分原始数据)。

我有PHP,MySQL和我的桌面应用程序(例如Excel)供我使用。最好的方法是什么?我可以想到的可能方式:

  • 将较新的数据插入到 Table_Copy,然后以某种方式区分 mysql中的两个表。
  • 以某种方式查询数据库 与没有的rawdata比较 必须上传。
  • 从中下载数据 数据库转换为原始CSV格式,和 然后使用桌面程序比较两个原始CSV

3 个答案:

答案 0 :(得分:1)

为什么不使用where子句来仅提取新数据?例如

select * from table where dateadded > '1-1-2011 18:18'

这取决于您的表具有日期添加列并填充数据的日期和时间。

答案 1 :(得分:0)

diff <(mysqldump test old_csv --skip-extended-insert) <(mysqldump test new_csv --skip-extended-insert) --side-by-side --suppress-common-lines --width=690 | more 

答案 2 :(得分:0)

您可以使用以下方法

1)数据库表比较 - 创建表的副本,然后比较数据。

您可以使用专有工具轻松完成(例如:EMS Data comparer)。

您还可以编写一些简单的查询来实现此目的(例如:从table_copy中选择id而不是(在表中选择id))

2)使用像winmerge这样的文件比较器    用精确的方法转储这两个表,并将它们进行比较。

我根据我的数据大小使用这两种方法。对于较小的数据,第二种方法很好。