使用IN + AND或其他方式进行CAML查询

达利

我的问题是关于caml查询SP2010,我的专栏如下:国家,角色,种类,种类,主题,文档类型,Searchtext。用户可能会按国家(多个->英国,法国,比利时)进行搜索,并输入文档名称(例如Doc_num_one.txt),并添加其他条件(例如角色,物种,物种,主题,文档类型)。我尝试了不同的查询,但我认为自己遇到了麻烦。以下是我到目前为止尝试过的内容:

<Query>
    <Where>
        <In>
            <FieldRef Name="Country"/>
            <Values>
                <Value Type="Lookup">United Kingdom</Value>
                <Value Type="Lookup">Poland</Value>
                <Value Type="Lookup">Belgium</Value>
            </Values>
        </In>
    </Where>
</Query>

或者

<Query>
    <Where>
        <And>
            <Eq>
                <FieldRef Name="Title" />
                <Value Type="Text">doc num two</Value>
            </Eq>
            <Or>
                <And>
                    <Eq>
                        <FieldRef Name="Country" />
                        <Value Type="Lookup">United Kingdom</Value>
                    </Eq>
                    <Eq>
                        <FieldRef Name="Role" />
                        <Value Type="Lookup">Super Admin</Value>
                    </Eq>
                </And>
                <And>
                    <Eq>
                        <FieldRef Name="Country" />
                        <Value Type="Lookup">Belgium</Value>
                    </Eq>
                    <Eq>
                        <FieldRef Name="Role" />
                        <Value Type="Lookup">Super Admin</Value>
                    </Eq>
                </And>
                <And>
                    <Eq>
                        <FieldRef Name="Country" />
                        <Value Type="Lookup">Poland</Value>
                    </Eq>
                    <Eq>
                        <FieldRef Name="Role" />
                        <Value Type="Lookup">Super Admin</Value>
                    </Eq>
                </And>
            </Or>
        </And>
    </Where>
</Query>

解决方案:

<Query>
<Where>
<And>
 <In>
 <FieldRef Name="Country"/>
 <Values>
  <Value Type="Lookup">United Kingdom</Value>
  <Value Type="Lookup">Poland</Value>
  <Value Type="Lookup">Belgium</Value>
 </Values>
 </In>
<In>
 <FieldRef Name="Role"/>
 <Values>
  <Value Type="Lookup">Super Admin</Value>
  <Value Type="Lookup">Admin</Value>
  <Value Type="Lookup">User</Value>
 </Values>
 </In>
</And>
</Where>
</Query>
史蒂芬(Stephan)

第二个查询不起作用,因为它在元素内有两个以上的子元素<Or>如果要测试更多子条件,则必须引入帮助器元素:

<Or>
    <And>...</And>
    <And>...</And>
    <And>...</And>
    <And>...</And>
    <And>...</And>
</Or>

变成

<Or>
    <And>...</And>
    <Or>
        <And>...</And>
        <Or>
            <And>...</And>
            <Or>
                <And>...</And>
                <And>...</And>
            </Or>
        </Or>
    </Or>
</Or>

<And>元素同样如此

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Elasticsearch-js(或其他方式)基于查询更新文档?

使用Eclipse或其他方式在linux目标上进行Java远程调试

维护模式-使用IP以外的其他方式进行授权

使用GAE sdk或其他方式对IP地址进行地理定位

如何使用SQL数据库的其他方式进行数据存储

使用循环或其他方式使用数组设置Imageview

使用arrayfun或其他方式创建动态Matlab函数

多重集成(使用 Scipy 或其他方式)

转换为.tbz或使用其他方式查找差异

如何在node.js中使用graphicsmagick裁剪圆形图片(其他使用其他方式在node.js上进行裁剪)

使用数组/其他方法进行优化

使用蓝牙/ Wi-Fi Direct / BLE API或任何其他方式将ios设备与android设备进行通信

可以使用 CLI 对 docker mongo 实例进行身份验证,但不能通过任何其他方式

不赞成使用ShowDialog的孩子,如何以其他方式使用它?

根据使用argparse模块输入的参数,是否可以使用其他方式显示表?

如何使用C#使用参数或其他方式将ConferenceDataVersion添加到Event

是否以其他方式使用try / catch,但有例外情况?

默认情况下,UDP(使用Java还是其他方式)是否为全双工?

在 pyspark 中使用独立条件的时间和其他方式

如何使用分区(或其他方式)联接两个表

如何使用boto3(或其他方式)在emr上自动执行pyspark作业?

如何使用 onTouchEvent 或任何其他方式在 graphView 上绘制形状?

使用 Linq 或 .Net 中的任何其他方式基于条件从 XML 获取记录

使用POSTMAN或任何其他方式的批量POST / PUT API请求

C11:对类型本身(而不是类型实例)使用`_Generic()`(或其他方式)吗?

JSF 2.0 AJAX:使用jsf.ajax.request(或其他方式)从javascript调用bean方法

如何使用opkg(或其他方式)在BeagleBone Black上升级到最新的glibc

如何使用其他方式连接Western Digital的“我的护照”?

使用RPy(或其他方式)*高效**将数据帧从熊猫移动到R