不能在“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: 两次,也不能在编码后调用