查找包含值的记录

时间:2016-10-10 08:25:49

标签: mysql

我有一个Table1的值。

接下来,我想看看Table2的主键是否是Table1.value的一部分。

示例:

Table1.value = "invoice 2016-213"; 

或者喜欢:

Table1.value = "518951932159 INVOICENR 54504247213";

Table2.primaryKey = "213";

所以,我尝试搜索' 213'在Table1.value。

这可能是正确的方法,因为它不起作用:

select * FROM Table2 WHERE Table2.primaryKey LIKE ('%Table1.value%')";

有人知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

你应该做反向

select * FROM Table2 
WHERE Table1.value LIKE concat( '%', Table2.primaryKey, '%')  
or  Table1.value LIKE concat( Table2.primaryKey, '%')  
or  Table1.value LIKE concat( '%', Table2.primaryKey)  

答案 1 :(得分:0)

select *
from Table2 a
where primaryKey in (
  select distinct value
  from Table1
  where value like concat('%', a.primaryKey, '%')
)