簡體   English   中英

不能將“MAX(CASE WHEN value ='first_name' THEN value END) 中的列 label 值用作'Förnamn'

[英]Cant use column label value in "MAX(CASE WHEN value ='first_name' THEN value END) as 'Förnamn'

我希望使用的表中的列名是“值”,但是在 MySql 中它變成了 MySql 命令。 列名“slug”工作得很好。 我無法控制列名,所以我無法將其更改為源表。

有沒有辦法使用價值而不是 og slug?

MAX(CASE WHEN **value** ='first_name' THEN value END) as 'Förnamn',

ID---+---EntryID---+--- slug---+---value---
1           1         first_name    Luke
2           1         lastname      Skywalker
3           1         profession    Jedi

SELECT entry_id,
MAX(CASE WHEN slug ='first_name' THEN slug END) as 'Förnamn',
MAX(CASE WHEN slug ='last_name' THEN slug END) as 'hej',
MAX(CASE WHEN slug ='email_address' THEN slug END) as 'E-post'
FROM wpgl_cf_form_entry_values
GROUP BY entry_id

好像你只想要條件聚合,就像這樣

SELECT entry_id,
    MAX(CASE WHEN slug ='first_name'    THEN value END) as `Förnamn`,
    MAX(CASE WHEN slug ='last_name'     THEN value END) as `hej`,
    MAX(CASE WHEN slug ='email_address' THEN value END) as `E-post`
FROM wpgl_cf_form_entry_values
GROUP BY entry_id

注意:不要使用單引號作為標識符:這些應該只為文字字符串保留。 MySQL 使用反引號作為標識符(盡管一般來說,我建議使用不需要引用的標識符)。

暫無
暫無

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

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