【发布时间】:2013-05-05 06:33:28
【问题描述】:
我目前在 SQL 表中使用 XML 数据类型
我的数据表是这样的
Id | Name | Surname | Title | Location | Artist |
-------------------------------------------------------
1 | xxx | abc | def | London | XML |
2 | xxx | abc | def | Oslo | XML |
3 | xxx | abc | def | New York | XML |
我的 XML 文件如下所示
<song category="gaming">
<title>Valentine's Day</title>
<artist-main>Fatfinger</artist-main>
<artist-featured>Slimthumb</artist-featured>
<year>2013</year>
<price>29.99</price>
<album>Gamestain</album>
<albumimg>http://download.gamezone.com/uploads/image/data/875338/halo-4.jpg</albumimg>
<songurl>http://www.youtube.com/watch?v=-J0ABq9TnCw</songurl>
现在根据我使用的查询来获取记录,该查询是
SELECT
Id, Name, Surname, Title
FROM
DATA
WHERE
Artist Like '%Fatfinger%' -- (this is user input)
这是在 SQL 中查询 XML 数据的正确方法,还是 SQL 中有任何内置函数可以处理 XML。我是 SQL 新手。
【问题讨论】:
-
您在使用哪些 RDBM,MS SQL Server、Oracle 等。重新标记您的问题,使其具有更好的可见性,从而引起一些关注
-
另外,检查您的 XML sintax,第 3 行和第 4 行没有正确的结束标记。应该是
artist-main和artist-feature。我猜最后有一个结束</song>标记。 -
@Yaroslav 我正在使用 MS SQL 2012
-
@John 我刚刚查看了链接。谢谢,但发现它有点先进。我刚刚开始使用 sql 不到 10 小时 :)
-
@FloodGravemid,没问题。真正的关键在于,当涉及到 XML 字段时,您根本没有使用 SQL。您实际上正在使用一种 XPath 形式。该问题具有解释其工作原理的链接。您可以将 XML 视为文本并使用字符串操作技术,就像您在示例中所做的那样,但通常最好在 XML 上使用特定于 XML 的工具。
标签: sql sql-server xml sql-server-2012