我试图解决的问题是这个。
我有一群人,有些人在这个数组中重复,但他们的细节并不总是完全一样,他们的名字有些细微差别。所以我要做的就是循环遍历所有名称并比较名称的接近程度,然后如果这是匹配他们的年龄和家乡。
稍后我希望创建一个新数组并说“此人也出现了以下ID”...
到目前为止我所做的是一个冒泡排序,如果我让它运行足够长时间,我确信我可以完成任务。我只是想看看有人有更好的解决方案吗?
optimizer_including = cudnn
答案 0 :(得分:1)
仅与具有相似年龄和家乡的人进行比较可能更有效率,然后对姓名进行比较检查。首先与每个人进行比较似乎都会非常缓慢。
对于您的SQL,这样的事情,因为您正在遍历每个用户:
SELECT name, age, hometown
FROM users
WHERE age BETWEEN value1 AND value2
AND hometown LIKE value3
然后进行比较检查。确保使用迭代器 - 如果你在成千上万的人中进行迭代,这将使你的内存管理保持不变。
这样,对于每个用户,您可能只是与少数可能的匹配(而不是可能的数千)进行比较。