繁体   English   中英

如何 select XML 属性 - 将 MSSQL 转换为 MySQL

[英]How to select XML attribute - Converting MSSQL to MySQL

我需要将下面的 MSSQL 查询转换为 MySQL。 该查询从 xpath 中的“page”元素中选择“id”属性的值。 我希望 MySQL 查询分别返回 3 行,其值分别为 1、2、3。 有人知道如何在 MySQL 中执行此操作吗? 请告诉我。

DECLARE @InputXML as xml
SET @InputXML = '<pages><page id="1"/><page id="2"/><page id="3"/></pages>'


SELECT 
     Node.value('@id', 'Bigint') AS ID
     FROM @InputXML.nodes('/pages/page') TempXML (Node))

编辑:忘记我之前说的。

感谢 Dave,你可能想看看这个:

http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html


(之前的答案留作参考):

MySQL 不做 XML。 所以简短的回答是:“你不能”。

长答案是,根据运行的上下文,您有几个选择。

  1. 将您的数据规范化为适当的 SQL 模式,而不是依赖 SQL 中的 XML。
  2. 从数据库中提取 XML 作为纯字符串,并在您的逻辑中执行 XML 处理(PHP、C#、VB,无论您使用的是什么)。 不幸的是,这意味着您无法通过数据库上的 xpath 表达式过滤数据,因此您必须提取所有候选行,然后丢弃不需要的行。
  3. 完全放弃数据库(至少在这部分),只存储 XML 文件。 如果存储和检索 XML 文件是您的应用程序所做的全部工作,并且您没有添加任何元信息,那么数据库几乎没有任何好处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM