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

时间:2016-03-31 15:56:55

标签: mysql python-2.7

我有来自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中复制名称

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 |