如何选择XML属性 - 将MSSQL转换为MySQL
问题描述:
我需要将以下MSSQL查询转换为MySQL。查询从xpath中的“page”元素中选择“id”属性的值。我希望MySQL查询分别返回值为1,2,3的3行。有人知道如何在MySQL中做到这一点?请告诉我。如何选择XML属性 - 将MSSQL转换为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))
答
编辑:忘记我刚才所说的。
礼貌戴夫,你可能想看看这个:
http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html
(留在原位,以供参考前面的答案):
MySQL没有做XML。所以简短的回答是:“你不能”。
长的答案是,根据上下文的运行情况,您有几个选项。
- 将数据标准化为适当的SQL模式,而不是依赖SQL中的XML。
- 从数据库中拉取XML作为普通字符串,然后在您的逻辑(PHP,C#,VB,无论您使用的是什么)中执行XML处理。不幸的是,这意味着你不能通过数据库上的xpath表达式来过滤你的数据,所以你必须得到所有的候选行,然后丢弃你不想要的行。
- 完全抛弃数据库(至少对于这个部分),只是存储XML文件。如果存储和检索XML文件是您的所有应用程序都做的,并且您没有添加任何元信息,那么数据库几乎没有任何好处。
MySQL的XML:http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html – Dave
不知道。咩。 – tdammers