不能在“MAX(CASE WHEN value ='first_name' THEN value END) 中使用列标签值作为 'Förnamn'

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

我希望在 table 中使用的列名称是“值”,但是在 MySql 中它变成了 MySql 命令。列名“slug”工作得很好。我无法控制列名,所以我无法更改它的来源table。

有没有办法使用 value 而不是 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 对标识符使用反引号(尽管一般来说,我建议使用不需要引号的标识符)。