【发布时间】:2012-11-18 16:05:33
【问题描述】:
考虑以下是我的两个 sql 表:
表 1 表 2
+--------+-------------+ +--------+------ ------------------------------------+ |美元 |型号 | |美元 |型号 | +--------+-------------+ +--------+------ ------------------------------------+ | 700 | iPad 2 WiFi 16GB | | 710 | iPad2 WiFi 16GB | | 400 | iPhone 4S 16GB | | 450 | iPhone4S 16GB | | 250 | iPod Touch(第 4 代)8GB | | 200 | iPod Touch 第 4 代 8GB | +--------+-------------+ +--------+------ ------------------------------------+我一直在智能地比较两个不同表中的数据。我在搜索或比较的上下文中挖掘了很多,我发现了
- similar_text()
- soundex()
- 变音器()
- LEVENSHTEIN()
- 喜欢
- 全文
- 正则表达式
...在 PHP 和 MySQL 中,但它们都没有效率。因为similar_text 和LEVENSHTEIN 确实很好,但最糟糕的缺点是它们对于1000 行非常慢,soundex() 和metaphones 对于这些不相似的项目返回相同的声音,比如“iphone”和“ipad”,两者都不相同等等。我想要做的就是有效地比较两行,就像上面的例子“iPhone 4S 16GB”和“iPhone4S 16GB”一样,我的解决方案应该快速工作以比较这些行。请让我知道我有哪些比较选项,以便我解决我的查询。我真的很感激任何想法,任何提示。
注意:我的一张表包含大约 900 行。
这是以下内容的延续:
【问题讨论】:
-
我担心这是 AI 完备的,不是吗?
-
最好的办法是进行一次比较并存储结果。恐怕你不会找到一种莱文斯坦式的算法来提高速度。
-
@H2CO3 好吧,你的恐惧是我亲爱的:-/