使用CAML查询是否可以使用这种逻辑



我在CAML查询方面经验丰富,但这让我卡住了。我需要一些帮助来构建查询的逻辑。我需要的是返回包含两个列中两个单词的每个记录。

示例(返回以下):

  • 列1:Word1,列2:Word2。//返回此记录
  • 列1:Word2,列2:Word1。//返回此记录
  • 列1:Word2 Word1,列2 :(空)。//返回此记录
  • 列1 :(空),列2:Word2 Word1。//返回此记录

示例(不要返回这些):

  • 列1 :(空),列2:word1。//请勿返回此记录
  • 列1:Word1,列2 :(空)。//请勿返回此记录
  • 列1 :(空),列2:word2。//请勿返回此记录
  • 列1:Word2,列2 :(空)。//请勿返回此记录
  • 列1 :(空),列2 :(空)。//请勿返回此记录

将逻辑放入sudo代码中:
if((" word1"出现在'column1'或" word1"中的'column2''中)和(" word2"出现在'column1'或" word2"中的'column2'中))


我尝试了不同的查询变体,但它们没有返回理想的结果。例如,如果Word1出现在第1列中,即使Word2没有出现在任何地方。

也将始终返回记录。
<Query>
<Where>
    <Or>
        <Contains>
            <FieldRef Name="Column1"/><Value Type="Text">word1</Value>
        </Contains>
        <And>
            <Contains>
                <FieldRef Name="Column2"/><Value Type="Text">word1</Value>
            </Contains>
            <Or>
                <Contains>
                    <FieldRef Name="Column1"/><Value Type="Text">word2</Value>
                </Contains>
                <Contains>
                    <FieldRef Name="Column2"/><Value Type="Text">word2</Value>
                </Contains>
            </Or>
        </And>
    </Or>
</Where>

P.S。我使用spservices

在SharePoint 2007中

感谢spservices.codeplex.com上的spevilgenius,这是对我有用的东西:

<And>
    <Or>
        <Contains>
            <FieldRef Name="Column1"/><Value Type="Text">word1</Value>
        </Contains>
        <Contains>
            <FieldRef Name="Column2"/><Value Type="Text">word1</Value>
        </Contains>
    </Or>
    <Or>
        <Contains>
            <FieldRef Name="Column1"/><Value Type="Text">word2</Value>
        </Contains>
        <Contains>
            <FieldRef Name="Column2"/><Value Type="Text">word2</Value>
        </Contains>
    </Or>
</And>

链接到讨论:https://spservices.codeplex.com/discussions/637384

相关内容

  • 没有找到相关文章

最新更新