我们正在尝试将数据从excel上传到数据库。在上传之前,我们希望预览数据与匹配状态的计数(例如:无匹配,相似匹配,完全匹配),同时与我们的数据库进行比较。
下面的查询需要3分钟从数据库中获取100行的信息。我们将有一个用户可以上传超过5k行数据的情况。请告知我们您对改进以下查询性能的建议。
select IF(
count(distinct ID) <= 0, (
select case when count(ID) > 0 then 'Similar Match' else 'No Match' end as MatchType from masterTable where (
soundex(BarCode) like soundex('12069B0') or soundex(ProductName) like soundex('FreezerZX')
) and (
levenshtein(BarCode,'12069B0') < 3 or (levenshtein(ProductName,'FreezerZX') < 3)
)
),
'Exact Match'
) as MatchType from masterTable where BarCode= '12069B0' and ProductName= 'FreezerZX';
1条答案
按热度按时间gj3fmq9x1#
如果没有一个简单的“相似匹配”算法,我建议你放弃用计算机完成整个任务。人类的大脑非常擅长相似性测试,所以我们再加上。。。
按要在中检查重复或接近重复的列对数据进行排序。垂直显示该列表。直观地浏览列表。
用重复
REVERSE(col)
. 这将发现在弦的早期有根本性差异的对,但是在弦的末端匹配得更好。根据需要对其他列重复此操作。