Нет необходимости прибегать к необработанным командам SQL, поскольку Ecto предоставляет DSL-запрос. По сравнению с другими языками вам не нужно беспокоиться о написании запросов, так как по умолчанию они очищаются.
Существует 2 подхода к созданию запросов:
- Синтаксис на основе ключевых слов (менее многословный) , однако выражения не могут быть переданы вместе)
- Синтаксис на основе конвейера (разрешает конвейеризацию выражения, используется для более сложных выражений)
Запрос на основе ключевого слова:
from e in Event,
where: e.fields["status"] == "accepted"
где Event
- ваша схема.
Запрос на основе канала:
"events"
|> where([e], e.fields["status"] == "accepted")
, где events
- имя таблицы.