我有一个名为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']");