У меня есть таблица базы данных с tinyInt
столбцом col (0=no, 1=yes)
. Мне нужно иметь возможность LIKE
поиска текстовых эквивалентных значений в этом столбце на основе текста, введенного пользователем. Например, пользователь, ищущий «n», должен дать MySQL
запрос "col LIKE '%n%'"
и вернуть счетчик всех строк с col=0
.
Я использую Doctrine 2
в Symfony 4
. Я пробовал построитель запросов и createQuery()
, и оба выдают мне одну и ту же ошибку.
Возможно ли то, что я пытаюсь? (Я не знаю, есть ли другой способ сделать это.)
Образец createQuery()
Код:
$em = $this->getEntityManager();
$query = $em ->createQuery(
"SELECT COUNT(1) AS c FROM App\Entity\MyEntity t
WHERE (CASE WHEN (t.bool_field=1) THEN 'yes' ELSE 'no' END) LIKE '%n%'"
);
$res = $query->getResult();
В результате возникла ошибка:
[Синтаксическая ошибка], строка 0, столбец 111: Ошибка: ожидается =, <, <=, <>,>,> =,
! =, получил «НРАВИТСЯ»
Любая помощь будет очень признательна.