mysql - 将值转换为列 SQL
问题描述
我正在使用以下 SQL 查询:
SELECT package_stats.developer, xf_user.username, xf_user.email, xf_user_profile.homepage, xf_user_profile.location, xf_user_profile.about, xf_user_field_value.field_id, xf_user_field_value.field_value
FROM package_stats, xf_user, xf_user_field_value, xf_user_profile
WHERE xf_user.username = package_stats.developer AND xf_user_field_value.user_id = xf_user.user_id AND xf_user_profile.user_id = xf_user.user_id
这会产生这样的结果:
我的问题是使用 SQL 查询是否可以将不同的field_id
值放入列中,以便我只有一行。
解决方案
您可以使用案例
SELECT
CASE WHEN xf_user_field_value.field_id = 'Github' THEN xf_user_field_value.field_id ELSE '' end) as 'Col Header Github',
CASE WHEN xf_user_field_value.field_id = 'Repository' THEN xf_user_field_value.field_id ELSE '' end) as 'Col Header Repository',
CASE WHEN xf_user_field_value.field_id = 'UserRole' THEN xf_user_field_value.field_id ELSE '' end) as 'Col Header UserRole',
CASE WHEN xf_user_field_value.field_id = 'aim' THEN xf_user_field_value.field_id ELSE '' end) as 'Col Header aim',
CASE WHEN xf_user_field_value.field_id = 'twitter' THEN xf_user_field_value.field_id ELSE '' end) as 'Col Header twitter',
/*other_col_name...*/
推荐阅读
- node.js - 是否可以在 elasticsearch-js 中使用高亮显示?
- sql - 如何循环 CTE 中的每条记录并读取列值
- javascript - 覆盖 Material UI 样式会导致“未捕获的 TypeError:Object(...) is not a function”
- c - How to convert openssl RSA structure to char * and back?
- python - 运行 python 脚本并输出到 txt 以获取 URL 列表
- angular - 如何等待函数从可观察响应中返回数据?
- django-models - 有没有办法与 q 对象连接?
- python - python中列表的切片列表,跳转一项
- c++ - C++/Qt 项目的连接函数中不存在插槽?(已经重新制作)
- php - 将网格的内容布局获取到gutenber博客中