mysql加入查询喜欢吗?

Posted

技术标签:

【中文标题】mysql加入查询喜欢吗?【英文标题】:mysql join query with like? 【发布时间】:2015-10-07 20:13:55 【问题描述】:

这是我的数据库结构的表示,带有几个示例行。我试图完成的是从表 1 中获取地址并在表 2 中搜索类似的匹配项。然后我只需要它返回子列结果

    Table 1
    id | address        | info
    ----------------------------------------
    1  | 123 test dr    | blah blah blah
    2  | 456 testing ln | blah blah blah blah

    Table 2
    id | wo        | addr           | sec    | sub
    ------------------------------------------------
    1  | 12345678  | 123 TEST DR    | Sec. 1 | Sub1
    2  | 87654321  | 456 TESTING LN | Sec. 2 | Sub2

我尝试了一些连接查询,但我似乎无法让它工作

【问题讨论】:

“子列结果”?嗯?您可以使用任何类型的条件加入,例如join foo on bar.x like foo.y 您可以发布您尝试过的查询吗? tablescan 天堂在这里 为什么需要使用LIKE?看起来这两个表中的地址完全匹配(除了大小写不同,mysql 通常会忽略)。 来自您提供的数据样本-您确定命令是您需要的吗?在我看来 UPPER() 是您加入表格所需要的 【参考方案1】:

尝试使用类似的东西:

select t2.sub 
from   Table1 t1
       left join Table2 t2 on t2.add like CONCAT('%', t1.address,'%') 

【讨论】:

加入带有前导通配符的条件将是各种低效...【参考方案2】:

这不是最好的主意,但就像学习 mysql 选项的过程一样,您可以看看我的方法:

http://sqlfiddle.com/#!9/e4962/2

SELECT t1.*, t2.*
FROM Table1 t1
LEFT JOIN Table2 t2
ON t1.address LIKE CONCAT('%',t2.addr,'%');

【讨论】:

以上是关于mysql加入查询喜欢吗?的主要内容,如果未能解决你的问题,请参考以下文章

mysql - 可以加入多个领域吗?

使用FQL查询每个喜欢的对象

导入过程后奇怪的MYSQL查询问题

加入 MySQL 查询结果

mysql加入子查询

Mysql 查询加入