При просмотре некоторого кода с моего контроллера я обнаружил странную ошибку в запросе, в основном в случае, когда операторы:
Содержимое базы данных:
столбцы:
category : client or case category
type : title or content
mainpage 1 or 0 (true or false)
значения:
0;0;1
соответствует нормальному выходу:
Case category;title;yes
токовый выход:
Client;Content;No
PHQL:
SELECT content.id,
(CASE content WHEN content.category = 0 THEN 'Case category' WHEN content.category = 1 THEN 'Client' WHEN content.category = 2 THEN 'Case' WHEN content.category = 3 THEN 'Product' WHEN content.category = 4 THEN 'Product category' WHEN content.category = 5 THEN 'Team' WHEN content.category = 6 THEN 'Vacancy' WHEN content.category = 7 THEN 'Reference' WHEN content.category = 8 THEN 'Article' ELSE "Category not found" END) AS category
FROM Apps\Source\Models\MainContent AS content
GROUP BY content.id
Дело в том, что все операторы 'case when' возвращают неверное значение, даже если (например, content.category = 0 в базе данных, но оно возвращает меня) 'Клиентское событие, которое должно получить его для значения 1 )
Если я перевожу утверждение в чистый sql, на всякий случай, чтобы проверить его, оно работает ...
SELECT
content.id,
(CASE WHEN content.category = 0 THEN 'Case category' WHEN content.category = 1 THEN 'Client' WHEN content.category = 2 THEN 'Case' WHEN content.category = 3 THEN 'Product' WHEN content.category = 4 THEN 'Product category' WHEN content.category = 5 THEN 'Team' WHEN content.category = 6 THEN 'Vacancy' WHEN content.category = 7 THEN 'Reference' WHEN content.category = 8 THEN 'Article' ELSE "Category not found" END) AS category
FROM main_content AS content
GROUP BY content.id
вывод:
Case category;title;yes
Это странность phql?