Поскольку это PostgreSQL, вам нужно заключать идентификаторы в кавычки, когда чувствительна к регистру проблема или вы используете ключевое слово в качестве идентификатора:
...where('title ILIKE ? OR "group" ILIKE ?', title, group)...
Вам лучше не использовать ключевое слово в качестве столбца IMO, чтобы вам не приходилось беспокоиться о подобных вещах. Я бы пошел с цитатой, а потом переименовал колонку как можно скорее, но это только я.
Пока я здесь, вы можете пропустить эти проверки, когда они не имеют смысла. Эта часть вашего запроса:
title ILIKE '%%'
всегда будет совпадать, если title
не равно нулю, поэтому вы можете использовать явную проверку not null
или не указывать ее полностью, если нет title
. Аналогично для "group" ILIKE ''
, который соответствует только тогда, когда "group"
пусто.