Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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/8/svg/2.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中使用XPATH fn:concat不会处理两个以上的参数_Mysql_Xml_Xslt_Xpath - Fatal编程技术网

在MySQL ExtractValue中使用XPATH fn:concat不会处理两个以上的参数

在MySQL ExtractValue中使用XPATH fn:concat不会处理两个以上的参数,mysql,xml,xslt,xpath,Mysql,Xml,Xslt,Xpath,在MySQL ExtractValue函数的XPATH中使用XSLT fn:concat()函数时,只返回前两个参数的字符串 例如: SELECT ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", 'concat(/xml/a,/xml/b,/xml/c)') 选择ExtractValue(“123”,“concat(/xml/a,/xml/b,

在MySQL ExtractValue函数的XPATH中使用XSLT fn:concat()函数时,只返回前两个参数的字符串

例如:

SELECT ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", 'concat(/xml/a,/xml/b,/xml/c)')
选择ExtractValue(“123”,“concat(/xml/a,/xml/b,/xml/c)”)
它应该返回“123”,但应该返回“12”

这是一个错误还是我做错了什么

我意识到可以使用以下解决方法:
concat(concat(/xml/a,/xml/b,/xml/c),/xml/c)
但说真的?

我想你正在寻找这样的东西:

SELECT ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//a | //b | //c')

我的问题是XPATH函数为什么没有返回正确的结果,而不是如何完成连接(我提供了另一种方法,也可以使用MySQL的CONCAT函数),它返回正确的结果。您可能期望函数没有假装的东西。这就是我想给你看的。你必须仔细阅读手册。刚刚尝试过:选择ExtractValue(“,”concat(“hello”,“world”,“!”));结果:“helloworld”(无感叹号)运行MySQL 5.5.31是。不幸的是,xpath/concat函数的mysql版本只支持两个参数。已经更新了示例。我知道这并不令人满意,但您必须使用此选项:
选择ExtractValue(“,”concat(“,hello,”,concat(“”,concat('world',“!”)))”
。。亚伦,你为什么不选我?看起来我是唯一一个愿意帮助你的人。顺便问一下,你有没有看过这个文档:?
SELECT 
  ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//a') AS a,
  ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//b') AS b,
  ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//c') AS c
example: concat('foo', 'bar')
result : 'foo bar'