在同一表的记录中查找相似的名称

时间:2019-11-20 15:22:29

标签: mysql similarity

我需要返回两个字段相似的表中的所有条目。下面显示了表和条目。实际的代码从第二个表中加载数据,但不会影响此问题。我只提到它是为了使示例更接近实际代码。

    table A_table {
    id int
    wordA text
    wordB text
    }
    table B_table {
    id int
    }

    wordA = bob
    wordB = bobby

    wordA = bob
    wordB = bob

    wordA = eedddee
    wordB = ddd

对于上述情况,我希望查询返回所有记录,因为一条记录与另一条记录相似或完全匹配。

从我在这里找到的示例中,我首先尝试使用IN。它返回了完全匹配的记录-在此示例中为bob和bob。

    SELECT wordA, wordB from A_table a left join B_table b on a.id = b.id 
    where ( wordA IN wordB or wordB IN wordA )

然后我使用LIKE尝试了变体,如下所示,但没有返回记录。

    SELECT wordA, wordB from A_table a left join B_table b on a.id = b.id 
    where ( wordA LIKE '%wordB#' or wordB LIKE '%wordA%' )

    SELECT wordA, wordB from A_table a left join B_table b on a.id = b.id 
    where ( wordA LIKE '% select wordB from B_table b2 where b2.id = a.id ) %'

我在这里已经阅读了许多类似的问题,但是找不到一个可以回答这个问题的问题。有办法吗?

0 个答案:

没有答案