MySQL的XML获得的第一个孩子

问题描述:

我有如下的XML格式:MySQL的XML获得的第一个孩子

<a> 
    <b>x</b> 
    <b>y</b> 
    <b>z</b> 
    <c>something</c> 
</a> 

如何使用MySQL来得到<a>这是一个节点<b>的第一个孩子?我需要MySQL语法来获得某个类型的第一个孩子

+2

你看着[XML功能](http://dev.mysql.com/doc/refman/5.7/en/xml-functions。 HTML#function_extractvalue)?你有什么问题? – JRD

您可以使用MySQL function ExtractValue(field,xpath)来选择XML内的元素。

使用XPath,您可以选择谓词为[1]的第一个元素。随着MySQL的表内的给定的XML,使用下面的选择返回,即第一元素内<a>

select ExtractValue(content, '/a/*[1]') from YourTable; 

这将返回值x。如果你想获得第一<b>只需使用此选择:

select ExtractValue(content, '/a/b[1]') from YourTable;