如何找到mySQL行之间的相似性?
我正在尝试创建一个脚本来查找表行之间的匹配百分比。例如,我的 mySQL 数据库在表产品中包含字段名称(索引,全文),其值类似于
LG 50PK350 PLASMA TV 50" Plasma TV Full HD 600Hz
LG TV 50PK350 PLASMA 50"
LG S24AW 24000 BTU
Aircondition LG S24AW 24000 BTU Inverter
正如你所看到的,他们都有一些相同的关键字。但第一个名字和第二个名字更相似。此外,第 3 和第 4 个之间的关键字比第 1 个和第 2 个相似。
我的 mySQL 数据库有数千个产品名称。我想要的是找到那些相似性超过百分比(假设60%)的名字。
例如,正如我所说,它们之间匹配超过60%的第1,第2(以及任何其他名称)将以组样式格式回显,以使我知道这些产品是相似的。第3和第4名以及任何匹配率超过60%的任何其他产品都会在另一组中回响,告诉我这些产品匹配。
如果可能的话,最好回显满足所有分组匹配名称的关键字。例如,LG S24AW 24000 BTU 是第 3 个和第 4 个名称中包含的关键字。
最后,我将创建所有这些关键字的列表。
我现在拥有的是以下查询(如Jitamaro建议的那样)
Select t1.name, t2.name From products t1, products t2
将在所有其他名称旁边创建一个新名称字段。对不起,我不知道如何正确解释它,但这就是它的作用:(真正的价值是如上所述的产品名称)
查询前
-name-
A
B
C
D
E
查询之后
-name- -name-
A A
B A
C A
D A
E A
A B
B B
C B
D B
E B
.
.
.
有没有一种方法可以使用mySQL或PHP为我找到匹配的名称并提取关键字,如上所述?请分享代码示例。
谢谢社区。