@xml= '<a><b>X</b><b>Y</b></a>';
set @i=1,@j=2;
select extractvalue(@xml,'//b[$@i]');
我想知道$@
在函数中使用的含义。
答案 0 :(得分:1)
$@
代表用户变量。见MySQL Documentation: User variables (weak checking)
首先,您发布的代码@xml= 'XY';
不是有效的XML。
要解释一下,//b[$@i]
是一个XPATH
查询。因为$@i
确实是一种变量插值。文档中的一个例子,
SET @xml = '<a><b>X</b><b>Y</b></a>';
SET @i =1;
然后执行SELECT ExtractValue(@xml, '//b[$@i]');
返回X
正弦它基本上说
选择第一个([1]索引)标记元素b
。所以,'//b[$@i]'
只是在说'//b[1]'