gpt4 book ai didi

mysql - 如何查看不同表中的 2 列之间是否存在匹配(以百分比表示)

转载 作者:行者123 更新时间:2023-11-29 21:11:22 27 4
gpt4 key购买 nike

我有来自 2 个源的 2 个不同的 MySQL 表,其中包含 field 名称!我想找到这些名称之间的匹配项并将其存储在第三个表中!这个想法是找到一个百分比,让我知道这些名称指的是同一个 field !如果它们匹配 >= 75 % 就是在谈论同一个 field !这样我就可以为第三个表选择一个 field 的单个名称(表 1 中的名称或表 2 中的名称)。我尝试了 MATCH AGAINST sintax 的一些方法,但没有得到想要的结果!提前致谢!我也期待可以使用 python 完成的想法!

对于即:我有表 1:

ID | Name
---------
1 | Ministry of Sound
2 | 4 Elements
3 | Blue Marlin Ibiza

和表 2:

ID | Name
---------
1 | Ministry Sound
2 | Four Elements
3 | Blue Marlin

如果表 1 中的第 1 行与表 2 中的第 1 行匹配 >= 75% 。在表 3 中,我将复制表 1 中的名称

最佳答案

我创建一个函数来比较匹配

<强> SQL Fiddle Demo

CREATE FUNCTION F_TEST (_ID INT, _NAME varchar(14)) 
RETURNS float
DETERMINISTIC
BEGIN
DECLARE match_ratio float;

SELECT (MATCH (`Name1`)
AGAINST (_NAME IN BOOLEAN MODE)) INTO match_ratio
FROM Table3
WHERE `ID` = _ID;

RETURN match_ratio;
END//

查询

SELECT `ID`, `Name1`, `Name2`, F_TEST(`ID`, `Name2`) AS score 
FROM Table3
ORDER BY score DESC;

输出

| ID |             Name1 |          Name2 |    score |
|----|-------------------|----------------|----------|
| 3 | Blue Marlin Ibiza | Blue Marlin | 0.455289 |
| 1 | Ministry of Sound | Ministry Sound | 0.455289 |
| 2 | 4 Elements | Four Elements | 0.227645 |

关于mysql - 如何查看不同表中的 2 列之间是否存在匹配(以百分比表示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com