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

Posted

技术标签:

【中文标题】不能在“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'不能在“MAX(CASE WHEN value ='first_name' THEN value END)中使用列标签值作为'Förnamn' 【发布时间】:2021-03-21 20:16:43 【问题描述】:

我希望使用的表中的列名是“值”,但是在 mysql 中它变成了一个 MySql 命令。列名“slug”工作得很好。我无法控制列名,因此无法将其更改为源表。

有没有办法使用 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

【问题讨论】:

MAX(CASE WHEN SLUG ='first_name' THEN value END) ?? 【参考方案1】:

看起来你只是想要条件聚合,就像这样

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 使用反引号作为标识符(尽管一般来说,我建议使用不需要引用的标识符)。

【讨论】:

以上是关于不能在“MAX(CASE WHEN value ='first_name' THEN value END)中使用列标签值作为'Förnamn'的主要内容,如果未能解决你的问题,请参考以下文章

片段“F1”不能在这里传播,因为“节点”类型的对象永远不能是“商店”类型

政府要求在隐私弹窗允许之前,不能联网,且不能读隐私信息

政府要求在隐私弹窗允许之前,不能联网,且不能读隐私信息

属性不能被标记为@NSManaged,因为它的类型不能在 Objective-C 中表示

致命异常:NSInternalInconsistencyException 此请求已被绝育 - 您不能调用 -sendResponse: 两次,也不能在编码后调用

为啥不能在 Java 中将类声明为静态?