VK Video
Можно ли указать несколько параметров where и order?
Да — это множественные параметры.
В каком порядке применяются where и order?
where
и order
— множественные параметры и применяются слева направо. Они оба имеют неодинарную структуру.
where:
where:
+ 'НЭЙМ_ПОЛЯ'
+ ЗНАК_СРАВНЕНИЯ
+ ЗНАЧЕНИЕ_ДЛЯ_СРАВНЕНИЯ
=: select(table: 'payments'; field: 'summ'; where: 'order_id' = #id)
=: selectList(table: 'clients'; field: 'client_name'; where: 'total' > $calc)
calc: #plan_for_manager * 4
Дотупны следуюшие сравнения:
=
— равно или пересечение.
!=
— не равно или отсутствие пересечения. Набирается как ! + =
.
>
— больше.
<
— меньше.
>=
— больше или равно. Набирается как > + =
.
<=
— меньше или равно. Набирается как < + =
.
==
— полностью равно для списков, ассоциированных массивов и списков ассоциированных массивов. Набирается как = + =
.
!==
— полностью неравно для списков, ассоциированных массивов и списков ассоциированных массивов. Набирается как ! + = + =
.
order:
order:
+ 'НЭЙМ_ПОЛЯ'
+ НАПРАВЛЕНИЕ_СОРТИРОВКИ
=: selectList(table: 'clients'; field: 'client_name'; order: 'income_group' desc; order: 'client_name' asc)
// сначала они будут сортированы по income_group по убыванию, а находящиеся в одной группе по client_name по возрастанию
asc
— по возрастанию.
desc
— по убыванию.
Если не указать направление сортировки, то оно будет по возрастанию asc
.
Как указать, что сортировать нужно по возрастанию или убыванию?
asc
— по возрастанию.
desc
— по убыванию.
Если не указать направление сортировки, то оно будет по возрастанию asc
.
Обязательно ли использовать сортировку?
Нет. Если не указывать то значения для списков вернутся в случайном порядке.
Как выключить where по условиям?
Надо передать в where
значение *ALL*
:
=: selectList(table: 'clients'; field: 'client_name'; where: 'total' > $if)
if: if(condition: #total > 10000; then: "*ALL*"; else: #total)
Если значение в поле total
будет больше 10000
то параметр where
в функции selectList будет выключен.