Condition using "CASE WHEN" not expecting "LIKE" keyword #6868

Open
opened 2026-01-22 15:40:23 +01:00 by admin · 0 comments
Owner

Originally created by @davidherdu on GitHub (Nov 5, 2021).

Bug Report

DQL:

SELECT u FROM App\Entity\User u 
WHERE CASE WHEN u.roles LIKE '%ROLE_SUPER_ADMIN%' THEN 'Admin' ELSE '' END LIKE :filter

Error:
[Syntax Error] line 0, col 283: Error: Expected =, <, <=, <>, >, >=, !=, got 'LIKE'

If I change "LIKE :filter" for "= :filter" it works.
The query works in Sequel Pro or MySQL Workbench without switching = by LIKE

Q A
BC Break no
Version 2.7

Summary

Doctrine should accept "LIKE" operator when the left operand is a "CASE WHEN" (DQL)

Current behavior

Doctrine is not accepting "LIKE" when the left operand is a "CASE WHEN"

How to reproduce

$q = $em->createQuery('SELECT u FROM App\Entity\User u WHERE CASE WHEN u.roles LIKE '%ROLE_SUPER_ADMIN%' THEN 'Admin' ELSE '' END LIKE :filter');
$cgs = $q->getResult();

Expected behavior

The DQL above run without any error

Originally created by @davidherdu on GitHub (Nov 5, 2021). ### Bug Report DQL: ``` SELECT u FROM App\Entity\User u WHERE CASE WHEN u.roles LIKE '%ROLE_SUPER_ADMIN%' THEN 'Admin' ELSE '' END LIKE :filter ``` Error: [Syntax Error] line 0, col 283: Error: Expected =, <, <=, <>, >, >=, !=, got 'LIKE' If I change "LIKE :filter" for "= :filter" it works. The query works in Sequel Pro or MySQL Workbench without switching `=` by `LIKE` | Q | A |------------ | ------ | BC Break | no | Version | 2.7 #### Summary Doctrine should accept "LIKE" operator when the left operand is a "CASE WHEN" (DQL) #### Current behavior Doctrine is not accepting "LIKE" when the left operand is a "CASE WHEN" #### How to reproduce $q = $em->createQuery('SELECT u FROM App\Entity\User u WHERE CASE WHEN u.roles LIKE '%ROLE_SUPER_ADMIN%' THEN 'Admin' ELSE '' END LIKE :filter'); $cgs = $q->getResult(); #### Expected behavior The DQL above run without any error
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#6868