[英]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.