Запрос Caml для поля lookupmulti равен только одному значению

Я хочу отфильтровать список Sharepoint с помощью запроса caml для поля lookupmulti, но я хочу отфильтровать элементы, которые имеют только одно значение. Например,

ID LookupMultiField

1 - Значение1, Значение2, Значение11

2 - Значение1

3 - Значение2, Значение3, Значение4

Когда я использую оператор Eq только для значения «Value1» в моем запросе, результатом являются элементы с идентификатором 1 и 2. Но я хочу получить элемент только с идентификатором 2. Как это возможно?


person tessa    schedule 21.11.2015    source источник


Ответы (2)


Я не думаю, что есть способ сделать это непосредственно в CAML на вашем LookupMultiField.

Самый простой способ, вероятно, получить все элементы с помощью Value1, а затем выполнить дополнительную фильтрацию в вашем коде.

Другим подходом может быть копирование вашего LookupMultiField в текстовое поле (например, через рабочий процесс) и выполнение фильтрации в этом текстовом поле.

Если у вас есть только несколько значений, вы также можете попытаться отменить условие фильтрации (заполнить NEQ Value2 и NEQ value3 и...).

person Christophe    schedule 21.11.2015

Вы можете использовать оператор «содержит», например:

<Where>
    <Contains>
        <FieldRef Name="LookupMultiField" LookupId="True"/>
        <Value Type="Text">1</Value>
    </Contains>
</Where>

Но вы должны знать идентификатор фильтрующего элемента

person N.kochnev    schedule 25.11.2015