如何正确查询mySQL数据库中的XML列?

时间:2019-07-09 09:14:01

标签: mysql xml mysql-5.7

我有一个名为Data的mySQL列,其字段类型= LongBlob。 在那里,每个供应商都有一个XML文档。 保存的XML文档如下所示:

<BarcodeList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Clientgroups>
    <clientgroup clientgroupID="0" />
  </Clientgroups>
  <Articles>
    <Article articleID="HS1" articleName="Air HG">
      <Configuration>
        <Feature selectedValue="846566843718" templateID="UpcCode" />
        <Feature selectedValue="14.2" templateID="Diameter" />
        <Feature selectedValue="8.6" templateID="RadiusBasecurve" />
      </Configuration>
    </Article>
   </Articles>
</BarcodeList>

当然,在我的实际数据中,此XML文件中有很多文章。 现在,我得到的输入是:“ 846566843718”,并且需要返回Diameter,RadisuBaseCurve和articleID。 我该如何实现?

我的mySQL Server版本:5.7 我尝试了一些SQL代码,但是运行了1分钟多,没有任何结果。

SELECT * FROM xmldata s WHERE EXTRACTVALUE(s.Data, "//Feature[@selectedValue='846566843718']");

并且:

SELECT * FROM xmldata s WHERE EXTRACTVALUE(s.Data, "/BarcodeList/Articles/Article/Configuration/Feature/selectedValue='846566843718']");

0 个答案:

没有答案