繁体   English   中英

在字符串值上连接表

[英]Join tables on string value

我有两个表A和B.每个表都有一个string类型的列“name”。 我希望从连接操作中获取所有记录,其中A.name是B.name的子字符串。

select * from A inner join B on A.name like concat('%',B.name,'%');

结果是一张空表。 该查询出了问题,因为如果我通过测试得到了结果

select * from A cross join B where A.name like 'test' and B.name like '%test%';

因为我得到了静态值“test”的一些记录。

第一个查询将B匹配为A的子字符串。您需要:

select * from A inner join B on B.name like concat('%',A.name,'%');

要么

select * from A inner join B on position(A.name in B.name) > 0;

如果你想匹配A.name是的一个子B.name ,然后再表达B.name LIKE '%A.name%' 尝试这个:

select *
from A inner join B
on B.name like '%A.name%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM