SQL 如何匹配已经拼接的数据?

img


现在想要把下表的名字显示到上表去,用的CODE 进行关联,但是只能显示没有拼接CODE的名字,怎么能实现把拼接了CODE的名字也显示出来呢?用的 left join 关联的

用一个子查询应该就能实现了

那就关联条件改一下,把上边的code如果包含下边的code作为关联关系,而不是直接通过code去关联

参考GPT和自己的思路:

对于这个问题,可以借助 SQL 的字符串匹配函数 LIKE 和通配符进行解决。通配符 % 表示匹配任意个字符,可以用来匹配已经拼接的 CODE。具体的 SQL 查询语句如下:

SELECT t1.*, t2.NAME
FROM table1 t1
LEFT JOIN table2 t2 ON t1.CODE = t2.CODE OR CONCAT('%', t1.CODE, '%') LIKE CONCAT('%', t2.CODE, '%')

其中,使用 OR 连接两个条件,分别匹配 CODE 相等和拼接 CODE 相等的情况。拼接 CODE 相等的条件使用 CONCAT 函数将 % 和字段值连接起来,再使用 LIKE 进行模糊匹配。这样就可以将拼接了 CODE 的名字也显示出来了。