Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我需要使用extractValue查询的帮助_Mysql_Xml_Extract Value - Fatal编程技术网

Mysql 我需要使用extractValue查询的帮助

Mysql 我需要使用extractValue查询的帮助,mysql,xml,extract-value,Mysql,Xml,Extract Value,谁能帮我为拥有一只价值250英镑的鸟的客户显示客户名称和客户id?我似乎能弄明白这一点 以下是一个非工作解决方案: Select extractValue(datax, '/client/cl_name' ) as Client , extractValue(datax, 'client/@cl_id') as ClientID from a_xml.xml_animals Where extractValue(datax,'count(//animal/an_type[self:text

谁能帮我为拥有一只价值250英镑的鸟的客户显示客户名称和客户id?我似乎能弄明白这一点

以下是一个非工作解决方案:

 Select 
 extractValue(datax, '/client/cl_name' ) as Client
, extractValue(datax, 'client/@cl_id') as ClientID
from a_xml.xml_animals
Where extractValue(datax,'count(//animal/an_type[self:text()="bird" and an_price= 250])') > 0; 
我也尝试过:

Select 
, extractValue(datax, '/client/cl_name' ) as Client
, extractValue(datax, 'client/@cl_id') as ClientID
from a_xml.xml_animals
Where extractValue(datax,'count(//animal/an_type[self:text()="bird"])') > 0
and
extractValue (datax, 'count(/client[an_price= 250])')  > 0;
以下是我正在使用的插入和表格:

use a_xml;

drop table if exists a_xml.xml_animals;

create table a_xml.xml_animals(
  id    int primary key
, datax TEXT)
;
truncate table a_xml.xml_animals;

insert into a_xml.xml_animals values (1,
'<client cl_id="8243"><cl_name>Johnson</cl_name><pets>
<animal><an_id>136</an_id><an_type>bird</an_type><an_name>ShowBoat</an_name><an_price>75</an_price></animal>
<animal><an_id>137</an_id><an_type>bird</an_type><an_name>Mr. Peanut</an_name><an_price>250</an_price></animal>
</pets></client>');

insert into a_xml.xml_animals values (2, 
'<client cl_id="3908"><cl_name>Nelson</cl_name><pets>
<animal><an_id>1201</an_id><an_type>cat</an_type>
<an_name>Ursula</an_name><an_name>Snookums</an_name><an_name>Mittens</an_name><an_price>500</an_price></animal>
</pets></client>');

 insert into a_xml.xml_animals values (3,
'<client cl_id="3775"><cl_name>Miller</cl_name><pets/></client>');

 insert into a_xml.xml_animals values (4,
'<client cl_id="8467"><cl_name>Miller</cl_name><pets>
<animal><an_id>205</an_id><an_type>bird</an_type><an_name>ShowBoat</an_name><an_price>75</an_price></animal>
<animal><an_id>207</an_id><an_type>bird</an_type><an_name>Mr. Peanut</an_name><an_price>150</an_price></animal>
<animal><an_id>212</an_id><an_type>bird</an_type><an_name>Tweet</an_name><an_price>275</an_price></animal>
<animal><an_id>215</an_id><an_type>bird</an_type><an_name>Charlie</an_name><an_price>380</an_price></animal>
</pets></client>');

 insert into a_xml.xml_animals values (5,
'<client cl_id="4578"><cl_name>Leeson</cl_name><pets>
<animal><an_id>358</an_id><an_type>bird</an_type><an_name>Archibald</an_name><an_price>275</an_price></animal>
<animal><an_id>369</an_id><an_type>cat</an_type><an_name>Smithers</an_name><an_name>Smuthers</an_name><an_price>250</an_price></animal>
<animal><an_id>3478</an_id><an_type>dog</an_type><an_name>Bossun</an_name><an_price>250</an_price></animal>
</pets></client>');

  insert into a_xml.xml_animals values (6,
'<client cl_id="9478"><cl_name>Terry</cl_name><pets>
<animal><an_id>658</an_id><an_type>bird</an_type><an_name>Archibald</an_name><an_price>275</an_price></animal>
<animal><an_id>669</an_id><an_type>bird</an_type><an_name>Smithers1</an_name><an_name>Smuthers2</an_name><an_price>250</an_price></animal><
animal><an_id>2478</an_id><an_type>bird</an_type><an_name>cat </an_name><an_price>250</an_price></animal>
</pets></client>');


  insert into a_xml.xml_animals values (7,
'<client cl_id="4478"><cl_name>Clyde</cl_name><pets>
<animal><an_id>101</an_id><an_type>bird</an_type><an_name>Archibald</an_name><an_price>275</an_price></animal>
<animal><an_id>102</an_id><an_type>cat</an_type><an_name>Smithers</an_name><an_name>Smuthers</an_name><an_price>250</an_price></animal>
<animal><an_id>103</an_id><an_type>dog</an_type><an_name>Bossun</an_name><an_price>250</an_price></animal>
<animal><an_id>301</an_id><an_type>bird</an_type><an_name>Archibald</an_name><an_price>275</an_price></animal>
<animal><an_id>201</an_id><an_type>cat</an_type><an_name>Smithers</an_name><an_name>Smuthers</an_name><an_price>250</an_price></animal>
<animal><an_id>401</an_id><an_type>dog</an_type><an_name>Bossun</an_name><an_price>250</an_price></animal>
</pets></client>');
使用xml;
如果存在一个_xml.xml _,则删除表;
创建表a_xml.xml_(
id int主键
,datax文本)
;
截断表a_xml.xml_;
将值(1,
“约翰逊
136birdShowBoat75
137鸟类花生先生250
');
将值(2,
“尼尔森
1201卡特
UrsulaSnookumsMittens500
');
将值(3,
“米勒”);
将值(4,
“米勒
205B鸟类展示船75
207比亚努特先生150
212birdtweet 275
215爱尔兰380
');
将值(5,
“利森
358birdArchibald275
369猫匠斯马瑟斯250
3478dogBossun250
');
将值(6,
“特里
658birdArchibald275
669鸟人1 muthers2250<
动物>2478鸟类250类
');
将值(7,
”“克莱德
101birdArchibald275
102猫匠150
103dogBossun250
301birdArchibald275
201catSmithersSmuthers250
401dogBossun250
');
试试这个:

Select 
, extractValue(datax, '/client/cl_name' ) as Client
, extractValue(datax, 'client/@cl_id') as ClientID
from a_xml.xml_animals
WHERE extractValue(datax, 'count(//animal[an_type="bird"])') > 0
AND extractValue(datax, 'count(//animal[an_price=250])') > 0;