我有两个SQL表,其中包含我想要比较的数据。表格具有以下结构:
id, title,url
我想按标题比较表格,如果字符串相似或相等,则通过将记录写入文件来记录。有人建议不要在SQL中复制数据并在.net中将其作为列表进行比较。
有关如何执行此操作的任何建议吗?
标题的典型示例:
表1 - KPTH Fox 44 via
表2 -KPTH Fox44我尝试在带有通配符'%'的sql中使用LIKE但是他的唯一适用于这些类型的示例并且无法使用
ABC
MSabC
答案 0 :(得分:2)
这样可以更容易在数据库中执行,然后返回匹配项的数据集。假设这两个表是相同的,并且您只匹配标题,您的SQL将如下所示:
SELECT [id], [title], [url]
FROM [Table1] t1
JOIN [Table2] t2 ON t1.[title] = t2.[title]
然后遍历结果集中的每个记录,并将所需的任何字段写入文件。
如果您只想坚持使用SQL,则可以运行查询,然后使用查询工具(例如Management Studio
或其他内容)将outout保存到文件中。
编辑:根据“类似”要求,您可以使用SQL中的SOUNDEX
命令来比较它们是否相似。 See MSDN了解有关SOUNDEX
命令的更多信息。
编辑2:要添加有关您添加的要求的更多信息:在SQL中,这类似的要求可能很难。您可以将标题解析为单词,然后将它们存储到临时表中,看看有多少匹配,然后根据阈值分配匹配条件。看起来您的数据也存储了一个URL,因此您也可以使用它,并在进行加权标题检查之前检查基本URL以查看它们是否匹配。我并不完全清楚除了标题之外你还在寻找什么样的结果。
这真的不是一个非常简单的任务,我认为有人能够给你一个答案。我相信一所大学的教授正在解决这个问题。