我有来自2个来源的2个MySQL不同的表,其中包含场地的名称!我想找到这些名称之间的匹配,以将其存储在第三个表中!我的想法是找到一个允许我知道名称的百分比指的是相同的场地!如果匹配> = 75%正在谈论相同的场地!这样我可以为第三个表选择一个场地的单个名称(表格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中复制名称
答案 0 :(得分:0)
我创建了一个比较匹配
的函数<强> 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//
QUERY
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 |