当前位置: 首页 > 面试题库 >

如何在sql中更新xml字段表?

公西俊民
2023-03-14
问题内容

我在一个表中有一个XML列,如下所示:

<word A="al"   B="h"   C="Ps" />
<word A="has"  B="es"  C="Pf" /> 
<word A="mom"  B="es"  C="Ph" />

我想像这样更新此字段:

<word A="al"   B="B1"   C="C1" /> 
<word A="has"  B="B2"  C="C1" /> 
<word A="mom"  B="B2"  C="C2" />

我想通过SQL Server中的一个函数来做。

谢谢!


问题答案:

正如Mikael所述,您需要描述更新背后的逻辑。但是对于上面的预期输出,以下应该起作用:

DECLARE @Words xml
SELECT @Words = '
<word A="al"   B="h"   C="Ps" />
<word A="has"  B="es"  C="Pf" />
<word A="mom"  B="es"  C="Ph" />'

SET @Words.modify('replace value of(/word[@A = "al"]/@B)[1] with "B1"')
SET @Words.modify('replace value of(/word[@A = "al"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "has"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "has"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@C)[1] with "C2"')

SELECT @Words


 类似资料:
  • 问题内容: 这是一个例子: 如果我有这些课程 在数据库中,我有一位作者名为“ George”,另一位作者名为“ Georfe”。最后一个是错误。因此,我想要的是每本以“ Georfe”为作者之一的书都被作者“ George”代替。 在SQL中确实很容易做到。如果id为“ George” = 3,id为“ Georfe” = 7,并且关系表名称为“ author_book”: 可以使用Django

  • 问题内容: ElasticSearch文档尚不清楚如何执行此操作。 我索引了一些推文,其中一个字段created_at被索引为字符串而不是日期。我找不到如何通过curl调用对该更改重新索引。如果重新编制索引是一个复杂的过程,那么我宁愿只是删除其中的内容并重新开始。但是,我也找不到如何指定字段类型! 任何帮助是极大的赞赏。 问题答案: 您需要使用Put Mapping AP I 定义映射。 日期可以

  • 问题内容: 我在表的一列中有XML ,并且我需要使用新值而不是0.00更新元素,并且使用两个不同值而不是空白的和元素来更新。 例如: 这是我在专栏中的XML: 这是我尝试过的: 我收到一个错误: 消息9341,级别16,状态1,第4行 XQuery [XYZ.XmlPayload.modify()]:“)”附近的语法错误,应包含步骤表达式 问题答案: 我认为这是一个很好的问题,因为它提出了一个有趣

  • 问题内容: 我想在userpost上实现SO类标签。我有一个名为tag_data的表,其中的列为idId,title,count。我有一个单独的表,该表链接了帖子与其可能使用的许多标签之间的关系。 继承人的问题,我如何获得当前计数,将其增加或减少一并安全地存储它。因此,在我选择和更新之间,没有其他连接/线程会更新它吗? 问题答案: 我假设您还想要新的计数,否则,这毫无疑问,只需更新set coun

  • 问题内容: 我有一个xml文件,调用data.xml就像下面的代码。该项目可以从客户端运行,没有问题,它可以读取xml文件。我现在遇到的问题是我想编写一个可以更新开始日期和结束日期的函数。我不知道如何开始。帮助将不胜感激。 我的main.java 问题答案: 首先加载XML文件… 现在,有几种方法可以执行此操作,但简单来说,您可以使用xpath API查找所需的节点并更新其内容 然后保存回文件…

  • 我试图在一个路由上调用一个AJAX请求,该路由在UserController中调用这个函数updateImpression(),这个函数试图增加MySQL中存储的“users”表中名为“impressions\u cpunt”的计数器列。我试着使用Eloquent只更新一个特定用户的列。 我认为save()函数应该首先工作,但是我的数据库没有得到更新并返回原始计数,update()函数甚至没有从函