首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下面查询Select CONVERT(xml,'<x>‘+ Replace(A.name,':','</x><x>')+'</x>’) as xDim from Erecharge;

下面查询Select CONVERT(xml,'<x>‘+ Replace(A.name,':','</x><x>')+'</x>’) as xDim from Erecharge;
EN

Stack Overflow用户
提问于 2018-10-12 17:18:21
回答 1查看 12关注 0票数 0

我想将字符串转换为xml列。为此,我使用了下面的查询:

代码语言:javascript
复制
 Select CONVERT(xml,'<x>' + Replace(A.name,':','</x><x>')+'</x>' ) as xDim from Erecharge;

但是它显示错误的sql语法..我想知道上面的查询出了什么问题

我还尝试了这个:

代码语言:javascript
复制
 Select Cast('<x>' + Replace(A.name,':','</x><x>')+'</x>' as XML) as xDim from Erecharge;
EN

回答 1

Stack Overflow用户

发布于 2018-10-12 17:47:07

有关在'XML) as xDim from Erecharge'附近使用的正确语法,请查看与您的MySQL服务器版本对应的手册

这意味着这样的表达式中的XML是不正确的:

代码语言:javascript
复制
CAST('foo' AS XML)

根据the docsCAST类型允许的值不包括XML

此外,在字符串上使用+ operator只是呈现零的一种复杂的方式:

代码语言:javascript
复制
mysql> SELECT 'a' + 'b';
+-----------+
| 'a' + 'b' |
+-----------+
|         0 |
+-----------+
1 row in set, 2 warnings (0.00 sec)

现在还不完全清楚你想要做什么。MySQL有XML Functions,但没有XML data types。如果只想生成恰好包含XML代码的字符串,则需要使用CONCAT()

代码语言:javascript
复制
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函数一无所知,我不熟悉它们。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52776275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档