MySQL加入一个字段周围标记要剥离的地方

时间:2015-04-09 10:05:45

标签: mysql tags left-join

我有两个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>因此过度复杂的连接 - 我无法修改它......

嗯,有没有办法可以解决这个问题?感谢

3 个答案:

答案 0 :(得分:1)

我不知道,但也许这会有用吗?

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

答案 1 :(得分:1)

快速而肮脏的污染就像这样:

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

答案 2 :(得分:1)

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

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

以下是您试用的示例小提琴:http://sqlfiddle.com/#!9/d6c04/1