SharePoint CAML 查询 - Where 条件的顺序给出不同的结果
SharePoint CAML query - order of Where conditions giving different results
我在 SharePoint Online 中遇到包含数千条记录的大型文档列表的问题。对于某些视图,我收到通常的列表视图超过 5000 个项目错误,因此我试图按日期字段过滤这些视图。我看到一些奇怪的结果会根据我的 where 条件的顺序发生变化。
当我按"Event Date" AND "Division"字段排序时,查询成功。
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
</And>
</Where>
</Query>
当我执行完全相同的查询但条件相反时,我收到一个错误,指出视图超出了列表视图阈值。
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
</And>
</Where>
</Query>
在我看来,SharePoint 确定第一个条件已经超过 5000 个项目,而不会理会第二个条件。我错过了什么吗?
在 SharePoint 查询中,如果 first 筛选器 returns 超过 5000 个项目,您将达到 5000 个项目阈值。在应用 AND 的第二个条件之前,将单独评估每个条件。
如果您有超过 5000 个具有相同分类的项目,则不能将其用作第一个条件。但如果事件日期适用于少于 5000 个项目,则可以将其作为第一个条件,然后用 AND 添加划分条件。
所以,是的,条件的顺序很重要。
我在 SharePoint Online 中遇到包含数千条记录的大型文档列表的问题。对于某些视图,我收到通常的列表视图超过 5000 个项目错误,因此我试图按日期字段过滤这些视图。我看到一些奇怪的结果会根据我的 where 条件的顺序发生变化。
当我按"Event Date" AND "Division"字段排序时,查询成功。
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
</And>
</Where>
</Query>
当我执行完全相同的查询但条件相反时,我收到一个错误,指出视图超出了列表视图阈值。
<View Scope=\"RecursiveAll\">
<Query>
<OrderBy Override='TRUE'><FieldRef Name='ID' /></OrderBy>
<Where>
<And>
<Eq><FieldRef Name='Division' /><Value Type='Text'>{division}</Value></Eq>
<Geq><FieldRef Name='Event_x0020_Date' /><Value Type='DateTime'>2019-01-01T00:00:00Z</Value></Geq>
</And>
</Where>
</Query>
在我看来,SharePoint 确定第一个条件已经超过 5000 个项目,而不会理会第二个条件。我错过了什么吗?
在 SharePoint 查询中,如果 first 筛选器 returns 超过 5000 个项目,您将达到 5000 个项目阈值。在应用 AND 的第二个条件之前,将单独评估每个条件。
如果您有超过 5000 个具有相同分类的项目,则不能将其用作第一个条件。但如果事件日期适用于少于 5000 个项目,则可以将其作为第一个条件,然后用 AND 添加划分条件。
所以,是的,条件的顺序很重要。