Mysql 通过全文搜索连接两个表
此数据库仅用于合并两个表,一个包含位置,另一个包含纬度和经度值。我想做的是按位置连接两个表,以便将纬度和经度值添加到表1中 表1: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
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列吗?或者是与表相关的东西?不,我不认为我认为这种关系是通过匹配两个表之间的位置字段来实现的?对不起,我的数据集速度太慢了。对不起,我的数据集速度太慢了。