mysql 值作为列名_mysql选择动态行值作为列名,另一列作为值

我有一个传统的用户信息表(仍然在使用中),我无法更改 –

id name value

------------------------------

0 timezone Europe/London

0 language en

0 country 45

0 something x

1 timezone Europe/Paris

1 language fr

1 country 46

时区/语言/国家等只是名称的例子,它们可以是变量/除了该列的行之外没有唯一的有限列表

我需要一个MySQL兼容的SQL查询将返回 –

id timezone language country something

---------------------------------------------------

0 Europe/London en 45 x

1 Europe/Paris fr 46

我浏览了关于将数据透视表功能嵌入到MySQL中的各种各样的答案,并且类似的,但是似乎没有一个使用来自同一个表的列的唯一行值的变量列名别名的情况。虽然我没有睡觉,所以他们都开始变得有点模糊,提前道歉。

最接近我可以找到的是使用准备好的语句http://stackoverflow.com/a/986088/830171,这将首先从名称列获取所有可能的/唯一的值,并构建使用CASE WHEN的查询和/或同一表查询上的多个子SELECT或JOIN。

我可以想到的替代方法是获取该用户标识的所有行,并在应用程序本身中以循环方式处理它们,或尝试将名称限制为有限数量并使用子SELECT / JOIN。但是,如果添加了一个新名称,那么第二个选项是不理想的,我必须重新访问此查询。

请告诉我我错过了一些明显的事情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值