簡體   English   中英

在Phalcon模型管理器中使用時給出的值不正確的情況

[英]CASE WHEN usage in Phalcon models manager doesn't give the right value

在查看控制器中的某些代碼時,我發現查詢中存在一個奇怪的錯誤,基本上是在when語句的情況下:

數據庫內容:

列 :

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奇怪嗎?

這兩個語句之間有區別(在搜索原始sql的情況下,PHQL很簡單):在PHQL中嘗試

SELECT content.id,
(CASE WHEN ...

在很多情況下,制作“類別”查找表並將其與“ main_content”結合起來會更好嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM