我想将字符串转换为xml列。为此,我使用了下面的查询:
Select CONVERT(xml,'<x>' + Replace(A.name,':','</x><x>')+'</x>' ) as xDim from Erecharge;但是它显示错误的sql语法..我想知道上面的查询出了什么问题
我还尝试了这个:
Select Cast('<x>' + Replace(A.name,':','</x><x>')+'</x>' as XML) as xDim from Erecharge;发布于 2018-10-12 17:47:07
有关在
'XML) as xDim from Erecharge'附近使用的正确语法,请查看与您的MySQL服务器版本对应的手册
这意味着这样的表达式中的XML是不正确的:
CAST('foo' AS XML)根据the docs,CAST类型允许的值不包括XML。
此外,在字符串上使用+ operator只是呈现零的一种复杂的方式:
mysql> SELECT 'a' + 'b';
+-----------+
| 'a' + 'b' |
+-----------+
| 0 |
+-----------+
1 row in set, 2 warnings (0.00 sec)现在还不完全清楚你想要做什么。MySQL有XML Functions,但没有XML data types。如果只想生成恰好包含XML代码的字符串,则需要使用CONCAT()
mysql> SELECT CONCAT('<date>', CURRENT_TIMESTAMP, '</date>') AS foo;
+----------------------------------+
| foo |
+----------------------------------+
| <date>2018-10-12 11:44:29</date> |
+----------------------------------+
1 row in set (0.00 sec)..。当然,您仍然需要确保尖括号和类似的东西不会破坏XML。CDATA可能会有所帮助。(对XML函数一无所知,我不熟悉它们。)
https://stackoverflow.com/questions/52776275
复制相似问题