mysql - 不能将“MAX(CASE WHEN value ='first_name' THEN value END)中的列标签值用作'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 使用反引号作为标识符(尽管一般来说,我建议使用不需要引用的标识符)。
推荐阅读
- ruby - Rspec 未通过测试,其中 'Diff:' 看起来相同
- vega-lite - 变通以显示基于周期时间列的 vega-lite 图表?
- google-data-studio - 使用 CASE WHEN 语句和聚合创建字段失败
- angular - 从 Angular 应用程序启动/停止 docker 的容器
- mongodb - 包含日期范围的最佳 Mongo 索引策略是什么
- django - 如何覆盖 Django 管理员/表单用于外键的查询集
- mysql - SQL 查询建议
- javascript - 如何编写使用异步函数和流的函数?
- spartacus-storefront - 接收页面模板的延迟加载模块
- nativescript - 更改 Rad SideDrawer 的内容(原为“第二(第三,...)侧抽屉”