gpt4 book ai didi

mysql - 将多行转换为列

转载 作者:行者123 更新时间:2023-11-29 07:20:13 25 4
gpt4 key购买 nike

我正在尝试从 MySQL 数据库检索数据。表(Tab_1)的结构是:

id   key      value
1 address xyz
1 post_code 120
1 country CA

如您所见,这实际上是订单详细信息。

我想将键列转换为实际列,并将值转换为该列的值。含义:

    id  address  post_code  country
------------------------------------
1 xyz 120 CA

哪里id=1是这个订单的关键。

MySQL 中的表无法更改。它是我们使用的封闭系统的一部分(WordPress 插件),我只想编写一个查询来从中获取一些数据......

我的目标是在连接中使用它,这样可以更轻松地获取数据:

Select x.address ,x.post_code, x.country
from orders
join (...) as x using (order_id=id)
where order_id=1

它应该给出:

    address  post_code  country
------------------------------------
xyz 120 CA

正如你所看到的,它假设获取 x 的所有字段,即地址、邮政编码、国家/地区等。...在连接中我需要放置转换 Tab_1 的查询到一个可读的连接结构。

我怎样才能做到这一点?

最佳答案

执行GROUP BY,对不同的键类型使用CASE表达式:

select id,
max(case when key = 'address' then value end) as address,
max(case when key = 'post_code' then value end) as post_code,
max(case when key = 'country' then value end) as country
from orders
group by id

关于mysql - 将多行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com