Как правильно запросить столбец XML в базе данных mySQL? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть MySQL Column, называемый Data, тип поля = 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 Version: 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']");
...