我有两个表 A 和 B。每个表都有一个字符串类型的列“名称”。我想从连接操作中获取所有记录,其中 A.name 是 B.name 的子字符串。
select * from A inner join B on A.name like concat('%',B.name,'%');
Run Code Online (Sandbox Code Playgroud)
结果是一个空表。该查询出了点问题,因为如果我通过以下方式测试它,我会得到结果
select * from A cross join B where A.name like 'test' and B.name like '%test%';
Run Code Online (Sandbox Code Playgroud)
在那里我得到了一些静态值“测试”的记录。
第一个查询匹配 B 作为 A 的子字符串。您需要:
select * from A inner join B on B.name like concat('%',A.name,'%');
Run Code Online (Sandbox Code Playgroud)
或者
select * from A inner join B on position(A.name in B.name) > 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4750 次 |
| 最近记录: |