gpt4 book ai didi

php - 在 MySQL 中透视一张表

转载 作者:行者123 更新时间:2023-11-29 18:08:39 25 4
gpt4 key购买 nike

我目前遇到一个问题,需要将多行转换为由特定键定义的单行。我知道 GROUP_CONCAT 功能并且目前正在使用它,但我想避免在获取结果后必须在 PHP 中使用explode。我的表格如下所示:

----------------------------------
| primary_id | key_value | value |
----------------------------------
| 1 | my_key_1 | val_1 |
| 1 | my_key_2 | val_2 |
| 1 | my_key_3 | val_3 |
| 2 | my_key_4 | val_4 |
| 2 | my_key_5 | val_5 |
----------------------------------

我想构建一个 MySQL 查询,它对于主 id 1 和主 id 2 的呈现方式与此完全相同:

-----------------------------------------------
| primary_id | my_key_1 | my_key_2 | my_key_3 |
-----------------------------------------------
| 1 | val_1 | val_2 | val_3 |
-----------------------------------------------

------------------------------------
| primary_id | my_key_4 | my_key_5 |
------------------------------------
| 2 | val_4 | val_5 |
------------------------------------

因此我可以在 PHP 中以数组形式检索输出,格式如下:

$output[1][my_key_1] = val_1
$output[1][my_key_2] = val_2
...

GROUP_CONCAT 功能可以工作,但如果只使用 SQL 获得我需要的形式的值会更好。

非常感谢任何指点,最诚挚的问候。

最佳答案

使用枢轴

select max(case (当 key_value=my_key_1 则 val_1 end)),max(case (当 key_value=my_key_2 则 val_2 结束)),从...等等...

关于php - 在 MySQL 中透视一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47591183/

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