Mysql Join 两个表上 Like with Concat

Posted

技术标签:

【中文标题】Mysql Join 两个表上 Like with Concat【英文标题】:Mysql Join two tables on Like with Concat 【发布时间】:2018-07-22 09:49:03 【问题描述】:

我想在 like 子句上连接两个表。我的架构是链接:

Sql Fiddle 1

如您所见,结果为空。

但是如果我使用like如下:

Sql Fiddle 2

如您所见,我可以通过namedes 获得包含“GRE”的结果。那么这里有什么问题呢?

我搜索了一段时间的答案,发现建议的方法和我做的一样:

similar question

任何建议都将受到高度赞赏。

【问题讨论】:

【参考方案1】:

你做得对。你只需要使用TRIM() 来删除尾随空格。像这样使用它

SELECT
    a.id as app_id,a.app_name,a.des,
    b.id as tag_id, b.name as tag_name
FROM aa_t_aaaa_app a
JOIN aa_t_aaaa_tag b
ON ((a.app_name LIKE CONCAT('%', TRIM(b.name) ,'%')) or (a.des Like CONCAT('%', TRIM(b.name) ,'%')))
order by a.id`

【讨论】:

非常感谢!你救了我的命。 ;)

以上是关于Mysql Join 两个表上 Like with Concat的主要内容,如果未能解决你的问题,请参考以下文章

INNER JOIN with WHERE lower(...) like ... 性能

mysql exists 和join哪个效率高

MySQL 在同一张表上有 2 个 LEFT JOIN

MySQL join 与关系表上的匹配

MySQL left join with 'b's limit

Mysql Count with Inner join of two tables, Average Join