列为XML的Sql的写法

select * from Bookmarkpoi where

poiid =31021 and BPCategoryIds.exist('//BPCategoryId[.=5]') = 1

sql语句的意思是从数据表Bookmarkpoi中查找数据,过滤条件是poiid列的值为31021,而且BPCategoryIds列(该列的内容是xml文本)中要存在BPCategoryId值为5的节点。

//的意思是查找所有的BPCategoryId节点,不管该节点处于哪一级。

update Bookmarkpoi set

BPCategoryIds.modify('delete (/BPCategoryIds/BPCategoryId[.=5])[1]')

where Poiid = 29786 and Userid = 73411

sql语句的意思是修改数据表中poiid为29786,userid是73411,而且BPCategoryIds列中有BPCategoryId值为5的节点的列,这样的列可能有多列,[1]的意思就是取所有记录中的第一个.表示取当前节点,所以BPCategoryId[.=5]的意思就是看看所有子节点中是否有值为5的节点。

示例如下:

1.按节点值查询

2.插入XML节点:

插入之前:

插入之后:

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念