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

标签 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
...

最佳答案

您可以使用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;

我不太清楚哪组数据对应哪张表。您可能需要交换表名称。

关于mysql - 获取从一个表中的全文字段到另一表中的另一个全文字段的总子字符串匹配计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172207/

相关文章:

mysql - 在 ORDER BY 中的字母后对数字进行排序

mysql - 一起使用 ORDER BY 和 GROUP BY

mysql - 在mysql数据库中存储字符长度~300,000的文本

sql - 如何从表中选择主键列?

php - 有没有一种保存和显示网页文档编辑的好方法

MySQL 引号

mysql - 在搜索时从 Mysql 数据中删除特殊字符

mysql - phpMyAdmin 复制

php - mysql, php , 相同的结果如何统计?

SQL 2008 R2 - 基于时间的触发器?