从一个表中的全文字段到另一个表中的另一个全文字段获取总子字符串匹配的计数

时间:2014-10-03 01:51:31

标签: mysql sql

我有一个加载了文本字符串的表,我需要在另一个表中的另一个文本字符串字段上进行子字符串匹配,然后吐出计数

CREATE TABLE `subdiv_names` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `names` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
)

CREATE TABLE 'property' (
  ...
  'subdiv_name' varchar(70) 
)

我试过

SELECT count(*) AS count,
SUBSTRING(subdiv_names.subdiv, wp_realty_listingsdb.Subdivision) AS mtch
FROM wp_realty_listingsdb,subdiv_names
GROUP BY mtch
ORDER BY count DESC

但当然没有。

一些数据subdiv_names.name

700 Ocean Drive
Barclay Condo Apts
Bay Colony
Coral Bay
...

和property.subdiv_name

Palm Beach Barclay Condo Apts Est 2
Old Jupiter Beach Road 700 Ocean Drive 
Old Jupiter Beach Road 700 Ocean Drive 
Palm Beach Barclay Condo Apts Est 2
Golfview Hgts 8 In Pb 24 Pgs 103 And 104
Bay Colony Heights
Paradise Cove At Palm Beach Lakes Condo
Palm Beach Barclay Condo Apts Est 2
WESTWOOD GARDENS
...

期望的结果

2 Old Jupiter Beach Road 700 Ocean Drive 
3 Palm Beach Barclay Condo Apts Est 2
1 Bay Colony Heights
0 Coral Bay
...

2 个答案:

答案 0 :(得分:1)

您可以使用like(或其他各种功能)执行此操作:

select p.subdivis, count(*)
from props p inner join
     subdiv_names n
     on concat(',', p.subdivis, ',') like concat('%,', n.subdiv, ',%')
group by p.subdivis;

我无法确定哪组数据与哪个表对应。您可能需要交换表名。

答案 1 :(得分:0)

如果我理解问题是正确的,那么我就不需要substring。我认为LIKE可以解决问题。

如果您可以提供您期望的快照,我们可以为您尝试或进一步详细说明问题。