Mysql 通过全文搜索连接两个表

Mysql 通过全文搜索连接两个表,mysql,full-text-search,left-join,inner-join,Mysql,Full Text Search,Left Join,Inner Join,此数据库仅用于合并两个表,一个包含位置,另一个包含纬度和经度值。我想做的是按位置连接两个表,以便将纬度和经度值添加到表1中 表1: Title: Location: Latitude: Longitude pizza shop london, chelsea, el13 4hr Null Null Phone Shop M

此数据库仅用于合并两个表,一个包含位置,另一个包含纬度和经度值。我想做的是按位置连接两个表,以便将纬度和经度值添加到表1中

表1:

Title:                Location:                          Latitude:       Longitude
pizza shop            london, chelsea, el13 4hr          Null            Null
Phone Shop            Manchester - Derby                 Null            Null
Computer Repair       Birmingham (b70)                   Null            Null


Table 2:

Location             Latitude:          Longitude:
London               53.6658            0.25533
birmingham           54.3665            0.89336
manchester           66.3368            0.25836
表1的“位置”列在某些情况下可能包含使用逗号破折号或多个位置的数据,因此我选择使用全文匹配首次匹配的内容,并在其中显示经度和纬度值

表1的最终结果应为:

Title:                Location:                          Latitude:       Longitude
pizza shop            London                             53.6658         0.25533
Phone Shop            manchester                         66.3368         0.25836
Computer Repair       birmingham                         54.3665         0.89336

谢谢你的帮助。

你可以找这个

select t1.title, t2.location, t2.latitude, t2.longitude
from table1 t1, table2 t2
where t1.location ilike concat('%', t2.location, '%');
    select t1.Title , SUBSTRING_INDEX(t1.Location, ' ', 1)as Location , t2.Latitude  , t2.Longitude 
   from Table1 t1
  inner join
  Table2 t2
   on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location
输出:

TITLE               LOCATION       LATITUDE     LONGITUDE
pizza shop          london         53.6658      0.25533
Computer Repair     Birmingham     54.3665      0.89336
Phone Shop          Manchester     66.3368      0.25836

使用
UPDATE
station应该是这样的

    update Table1 t1
        inner join Table2 t2
        on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location 
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude

您可能正在寻找这个

    select t1.Title , SUBSTRING_INDEX(t1.Location, ' ', 1)as Location , t2.Latitude  , t2.Longitude 
   from Table1 t1
  inner join
  Table2 t2
   on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location
输出:

TITLE               LOCATION       LATITUDE     LONGITUDE
pizza shop          london         53.6658      0.25533
Computer Repair     Birmingham     54.3665      0.89336
Phone Shop          Manchester     66.3368      0.25836

使用
UPDATE
station应该是这样的

    update Table1 t1
        inner join Table2 t2
        on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location 
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude

这很有效,谢谢,但我如何进行更新而不是选择?谢谢,我刚刚对13000行进行了测试,只有8000行匹配。一些不匹配的行:彼得伯勒、剑桥郡-(均列在表2中)Old Hall Industrial Estate、Wirral、CH62 3QX-(Wirral列在表2中)可能我的问题不清楚,但我的位置数据可能并不总是在前面,例如xxx、HFH、伯明翰、,fffj,因此关键字可以在任何地方,而不仅仅是在前面。它可以由两个或三个单词的关键字组成,例如west bromwich或city of London那么这两个表之间的关系是什么?你有id列吗?或者与表相关的东西?不,我不知道。我认为这种关系应该是通过匹配两个表之间的位置字段来实现的。这很有效,谢谢。但是我如何更新而不是选择?谢谢。我刚刚在13000行上测试了这一点,只有8000行匹配。一些不匹配的行:彼得伯勒、剑桥郡-(均列在表2中)Old Hall Industrial Estate、Wirral、CH62 3QX-(Wirral列在表2中)可能我的问题不清楚,但我的位置数据可能并不总是在前面,例如xxx、HFH、伯明翰、,fffj,因此关键字可以在任何地方,而不仅仅是在前面。它可以由两个或三个单词的关键字组成,例如west bromwich或city of London那么这两个表之间的关系是什么?你有id列吗?或者是与表相关的东西?不,我不认为我认为这种关系是通过匹配两个表之间的位置字段来实现的?对不起,我的数据集速度太慢了。对不起,我的数据集速度太慢了。