使用OR和IN时,SharePoint CAML查询不起作用

时间:2019-01-16 08:43:57

标签: sharepoint caml

我正在尝试使用以下查询来查询SharePoint列表:

<Where>
<Or>
 <In>
    <FieldRef Name='col1' />
    <Values><Value Type='Integer'>1</Value></Values>
 </In>
 <In>
    <FieldRef Name='col2' />
    <Values><Value Type='Integer'>1</Value></Values>
 </In>
</Or>
</Where>

都是分类法字段。问题是我没有得到任何结果。仅使用一种条件时,我得到结果,但是将它们与“或”组合时,我没有任何结果。我在做什么错了?

编辑:我正在使用SharePoint 2013,并且我还尝试添加LookupId =“ TRUE”

3 个答案:

答案 0 :(得分:1)

我最终使用术语id在分类法字段的隐藏文本字段中进行查询:

<Where>
<Or>
  <Contains><FieldRef Name='kf7aa880952e4699a9693b8b7379c884'/><Value Type='Text'>40e7b1fd-3892-4311-8428-6dbe77fc4ad7</Value></Contains>
  <Contains><FieldRef Name='le11567cdf314372b377761db5f67b84'/><Value Type='Text'>40e7b1fd-3892-4311-8428-6dbe77fc4ad7</Value></Contains>
</Or>
</Where>

答案 1 :(得分:0)

尝试这样的事情

<FieldRef LookupId='TRUE' Name='MyTaxonomyField' />
<Values>
 <Value Type='Integer'>4</Value>
</Values>

答案 2 :(得分:0)

我建议使用CAML构建器来建立您的查询。

尝试以下

    <Where>
<Or>
 <In>
    <FieldRef Name='col1' />
    <Values><Value Type='Text'>TAxTextValue</Value></Values>
 </In>
 <In>
    <FieldRef Name='col2' />
    <Values><Value Type='Text'>TAxTextValue</Value></Values>
 </In>
</Or>
</Where>

有人指出可能存在错误,但您尚未指出SP的版本。

Possible bug

谢谢

特鲁兹