Для запроса простого в томКак применить функцию перед сравнением в esqueleto запросе
runDb . select . from $ \cell -> do
where_ $ cell ^. CellCode ==. val "x"
return cell
Я хочу, чтобы применить функцию до сравнения значения поля с «х». Причина в том, что код ячейки имеет завершающие пробелы в базе данных и ничего проще, чем обрезать их, например. с strip от Data.Text
. Тем не менее, мой первоначальный подход использования fmap
(дважды) в результате
No Instance for (Functor SqlExpr)
Я знаю, что есть функции обеспечивают по Esqueleto, как just
, что выполнять подобные вещи, в частности (я не мог найти реализацию just
, хотя).
Есть ли способ применить любую функцию к упакованному значению?
При написании: в моем конкретном случае, я просто хочу использовать like
.
EDIT: добавлена специальная функция, которую я хочу применить.
Интересно, на основе, например, в вашей ссылке, я понимаю, что причина, почему SqlExpr не имеет экземпляра функтора, что он делает на самом деле живет в SQL земле ... Я думаю, что нет реального решения проблемы, как я ее поставил, если SQL не реализует нечто вроде полосы. –