我正在尝试创建一个脚本,以找到我的表格行之间的匹配百分比。例如,我的MySQL数据库中的表格products包含字段name(索引、全文本)的值如下:
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
你可能会发现它们都有一些相同的关键字。但是第一个名字和第二个名字更相似。此外,第三个和第四个之间的关键字比第一和第二个之间的更相似。
我的MySQL数据库中有数千个产品名称。我想要找到那些具有超过一定相似度百分比(比如60%)的名称。
例如,如我所说,第一个、第二个(以及任何其他匹配项)彼此之间匹配超过60%的名称将以分组格式回显,让我知道这些产品是相似的。第三个和第四个以及任何其他匹配超过60%的名称将在另一组后面回显,告诉我这些产品是匹配的。
如果可能的话,最好回显满足所有分组匹配名称的关键字。例如,LG S24AW 24000 BTU 是包含在第三和第四个名称中的关键字。
最终,我将创建所有这些关键字的列表。
我现在拥有以下查询(正如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的方法可以找到匹配的名称并提取上述关键词?请分享代码示例。
谢谢社区。