MySQL-根据连接字符串匹配引用表

MySQL-根据连接字符串匹配引用表,mysql,sql-like,matching,Mysql,Sql Like,Matching,我在实现以下目标时遇到问题: 我有一个仅由字符串组成的“参考表” 我有一个“数据表”,它确实有一个包含字符串的字段,该字符串由引用表中可能出现的几个字符串连接而成。分隔字符串的语法各不相同,因此它们不容易分割 我需要的是一个查询,它在引用表中运行,并搜索数据表中是否有该连接字符串包含引用表中的值的行 此外,如果查询将返回数据行的主键以及从引用表中找到的字符串,这将是完美的。尝试此查询。如果它包含引用表中的多个字符串,则可以从数据表中输出双副本: select * from data_tabl

我在实现以下目标时遇到问题:

  • 我有一个仅由字符串组成的“参考表”
  • 我有一个“数据表”,它确实有一个包含字符串的字段,该字符串由引用表中可能出现的几个字符串连接而成。分隔字符串的语法各不相同,因此它们不容易分割
我需要的是一个查询,它在引用表中运行,并搜索数据表中是否有该连接字符串包含引用表中的值的行


此外,如果查询将返回数据行的主键以及从引用表中找到的字符串,这将是完美的。

尝试此查询。如果它包含引用表中的多个字符串,则可以从数据表中输出双副本:

select * from data_table
join reference_table 
on (data_table.concatenated_field 
               like CONCAT('%',reference_table.string_field,'%'));
您还可以将数据表中的这些简单行分组到一个:

select data_table.id, max(data_table.concatenated_field),
GROUP_CONCAT(reference_table.string_field) 
from data_table
join reference_table 
on (data_table.concatenated_field 
               like CONCAT('%',reference_table.string_field,'%'))
group by data_table.id

非常感谢-这似乎非常有效!不过我还得做一些测试。但是,您的语句缺少连接条件的结束括号。