MySQL 加入其中一个字段周围的标签被剥离

MySQL joins where one field has surrounding tags to be stripped

我有两个 MySQL 表,articolitabtranslations,它们之间的连接应该很简单

SELECT CodArt, Translation FROM articoli LEFT JOIN tabtranslations ON articoli.CodArt = tabtranslations.Chiave

但是,虽然 articoli.CodArt 有简单的字符串(A001BS15 等),字段 tabtranslations.Chiave 充满了周围的标签,例如 <CODART>A001</CODART>, <CODART>BS15</CODART> 因此连接过于复杂 - 我无法修改它...

嗯,有什么办法可以解决这个问题吗?谢谢

我不知道,但也许这会奏效?

SELECT CodArt, Translation
FROM articoli
LEFT JOIN tabtranslations ON tabtranslations.Chiave LIKE '%' + articoli.CodArt + '%'

一个快速而肮脏的解决方案是这样的:

SELECT CodArt, Translation
FROM
  articoli LEFT JOIN tabtranslations
  ON CONCAT('<CODART>', articoli.CodArt, '</CODART>') = tabtranslations.Chiave

以防万一 'CODART' 不是唯一可能的标记,您可能希望在连接谓词中使用 REGEXP,如下所示:

select *    
  from codart c     
    left join tabtranslations t       
      on t.chiave REGEXP CONCAT('<.*>', c.codart, '</.*>');

这里有一个示例 fiddle 供您试用:http://sqlfiddle.com/#!9/d6c04/1