我想问一下如何只选择那些包含XML列的表中的记录,这些记录在XML中包含一个特定的标记。
表名是:Searchindex 带XML的列:记录 XML元素:
标签仅包含在少数记录中,而不是全部记录。
XML示例结构:
<Record>
<ppn>asasaa</ppn>
<NAM>asdad</NAM>
<HasProduct>True</HasProduct> << this tag is only on certain records
<ART>asdadsa</ART>
<PublicationDate>06/21/1999</PublicationDate>
<PSal>1305</PSal>
<MSal>14</MSal>
<Xpos>False</Xpos>
</Record>
任何例子都会很棒。
非常感谢!
答案 0 :(得分:2)
以下是示例:
CREATE TABLE T
(
ID int,
X xml
)
INSERT INTO T VALUES
(1, '<Record>
<ppn>asasaa</ppn>
<NAM>asdad</NAM>
<HasProduct>True</HasProduct>
<ART>asdadsa</ART>
<PublicationDate>06/21/1999</PublicationDate>
<PSal>1305</PSal>
<MSal>14</MSal>
<Xpos>False</Xpos>
</Record>'),
(2, '<Record>
<Xpos>False</Xpos>
</Record>')
SELECT *
FROM T
WHERE X.exist('Record/HasProduct')=1
/*Tag with value=True*/
SELECT *
FROM T
WHERE X.exist('Record/HasProduct[text()="True"]')=1
答案 1 :(得分:0)
尝试
SELECT * FROM table1
WHERE x REGEXP '<HasProduct>\w+</HasProduct>'
\ w可以更改为您想要的任何搜索值