给出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>
但结果只返回一些空格。
我需要你的帮助才能做到这一点。
感谢。
答案 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]'));
返回这将返回