2010-11-22 42 views
0

鉴于MySQL数据库类似于XML是:如何在mysql中使用EXTRACTVALUE()来获取xmlfrag?

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>

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

我需要你的帮助来完成这项艰苦工作。

谢谢。

+0

是,mysql5.1 +具有操作XML-- extractValue一起和如updateXML的两个新的功能:甲) – Simon 2010-11-22 17:49:19

回答

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

回报这将返回

+0

所以,这是不可能的:(。谢谢你的帮助。 – Simon 2010-11-22 18:16:33