给定mysql DB中的xml,如下所示:

set @xml = '<lrb id="370" deleted="0">
<lrb id="371" deleted="0"><add/></lrb>
<lrb id="372" deleted="0"><add/></lrb>
<add/></lrb>'


我使用sql:SELECT EXTRACTVALUE(@xml,'//lrb[@id=370]')

我想返回这个:
<lrb id="371" deleted="0"><add/></lrb> <lrb id="372" deleted="0"><add/></lrb>

但是结果只返回一些空格。

我需要您的帮助才能完成这项工作。

谢谢。

最佳答案

ExtractValue()仅返回CDATA,不返回匹配标签中可能包含的任何标签,也不返回其任何内容(请参见以下示例中以val1返回的结果)。 details


如果将其替换为:

set @xml =
'<lrb id="370" deleted="0">THIS WILL RETURN
  <lrb id="371" deleted="0">bbb<add/></lrb>
  <lrb id="372" deleted="0">ccc<add/></lrb>
  <add/>
</lrb>';

SELECT TRIM(EXTRACTVALUE(@xml,'//lrb[@id=370]'));


这将返回

10-08 02:47