我正在使用CAML查询从列表中提取项目。
我尝试重新安排查询结构,但仍然不会返回任何内容。我尽量不使用CAMLQuery Builder(手动完成)。
<Query>
<Where>
<And>
<Contains>
<FieldRef Name="Field1"/><Value Type="Text">A</Value>
</Contains>
<And>
<In>
<FieldRef Name="Field2"/><Values><Value Type="Text">B</Value></Values>
</In>
<Or>
<In>
<FieldRef Name="Field3"/><Values><Value Type="Text">C</Value></Values>
</In>
<In>
<FieldRef Name="Field4"/><Values><Value Type="Text">D</Value></Values>
</In>
</Or>
</And>
</And>
</Where>
</Query>
注意:我看到的问题似乎与此相似,但从未见过像这种分支水平一样深的问题。 CAML查询似乎特别适用于放置结束标记的位置。
我是否错误地嵌入了“And”和“Or”?这个查询中可能有什么错误/缺失?
答案 0 :(得分:0)
虽然您的CAML对我有用(没有实际的<FieldRef>
和<Value>
元素,但我无法专门测试您的字段名称,类型和值),我倾向于编写我的CAML在一个更平衡的&#34;时尚,如此:
<Query>
<Where>
<And>
<And>
<Contains>A</Contains>
<In>B</In>
</And>
<Or>
<In>C</In>
<In>D</In>
</Or>
</And>
</Where>
</Query>
根据规范,您的发布版本和我在这里的回答会得到相同的结果,但我会测试确认。如果上述方法不起作用,除了简洁之外,我建议发布您的完整CAML,以便我们可以使用相同的字段名称重新创建您的列表&amp;具有匹配值的类型和测试数据。