从mysql中的xml中提取值

KSH*_*TiJ 5 xml mysql

我试图从xml中提取值.我在xml具有属性时遇到问题.喜欢以下存储过程

DELIMITER $$
DROP PROCEDURE IF EXISTS `excel`.`insert_items` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_items`()
BEGIN
SET @xml = '<items><item>
        <value columntype="0">Single Line Text_01</value>
    <value columntype="1">Single Line Text_12341</value>
    <value columntype="2">Single Line Text_21</value>
    <value columntype="3">Single Line Text_31</value>
    <value columntype="4">Single Line Text_41</value>
    </item>
</items>';
SELECT @columntype, ExtractValue(@xml, 'items/item/value[items/item/value/@columntype=0]');    
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

pet*_*erm 9

获取具有属性的元素的值 columntype="0"

SELECT ExtractValue(@xml, 'items/item/value[@columntype=0]') value;
Run Code Online (Sandbox Code Playgroud)

输出:

|               VALUE |
-----------------------
| Single Line Text_01 |
Run Code Online (Sandbox Code Playgroud)

SQLFiddle

  • 如果我有这个XML怎么办:`<items> <item> <value1>单行Text_01 </ value> <value2>单行Text_12341 </ value> <value3>单行Text_21 </ value> <value4>单行Text_31 </ value> <value5>单行Text_41 </ value> </ item> </ items>`如何在此方案中单独提取值? (3认同)