LIKE查询中的MySQL列值

LIKE查询中的MySQL列值,mysql,Mysql,我在一个数据库中有两个表 两者都包含相关id,但格式不同: table1.field = 123456-12-34 table2.id = 123456 我想做的是在table1.id=table2.field上加入join 因此,查询如下所示: select name from table1 left join table2 on table1.field like table2-% where table2.flag='1' and DATEDIFF( now(), ta

我在一个数据库中有两个表

两者都包含相关id,但格式不同:

table1.field = 123456-12-34
table2.id = 123456
我想做的是在
table1.id=table2.field上加入
join

因此,查询如下所示:

select name from 
    table1 left join table2 on table1.field like table2-%
    where table2.flag='1' and DATEDIFF( now(), table1.timestamp ) > 2

我知道这是不正确的,但如何将两个相关但不相同的字段上的表联接起来?

您想使用
concat()
创建模式字符串:

select name
from table1 left join
     table2
     on table1.field like concat(table2.id, '-%')
where table2.flag='1' and DATEDIFF( now(), table1.timestamp ) > 2
这可能会帮助您: