如何在SQL中搜索整个XML列中的字符串?

时间:2014-08-03 01:38:19

标签: sql sql-server xml tsql

我想创建一个查询整个XML列中字符串的查询。

我的表名是msg。它有两个字段IDxmlmsg ID的类型为INT,xmlmsg的类型为XML。

我想编写一个查询以在xmlmsg列中搜索“123456”并返回ID。

由于

1 个答案:

答案 0 :(得分:0)

这应该有效。我用Xquery来做这件事。有几个网站有助于学习Xquery,并在这里找到一个这样的网站进行练习ClickMe

DECLARE @msg TABLE 
        (ID INT IDENTITY(1, 1), XMLmsg XML)

INSERT INTO @msg
  (
    XMLmsg
  )

SELECT  '<Root>
<MsgDescription MsgID="123456">
</MsgDescription>
</Root>'
UNION ALL
SELECT  '<Root>
<MsgDescription MsgID="123457">
</MsgDescription>
</Root>'
UNION ALL
SELECT  '<Root>
<MsgDescription MsgID="123458">
</MsgDescription>
</Root>'


SELECT   *
FROM     @msg
WHERE    XMLmsg.exist('(/Root/MsgDescription[@MsgID=''123456''])') = 1

GO