如何在mysql中使用EXTRACTVALUE()来获取xmlfrag?

时间:2010-11-22 17:05:21

标签: mysql xml

给出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>

但结果只返回一些空格。

我需要你的帮助才能做到这一点。

感谢。

1 个答案:

答案 0 :(得分:2)

  

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]'));

返回这将返回