gpt4 book ai didi

mysql - 如何在没有 GROUP_CONCAT 的情况下将行转换为列?

转载 作者:行者123 更新时间:2023-11-29 03:54:10 25 4
gpt4 key购买 nike

我有下表:

greeting:+-------------------------+| id | lang_id | name     |+-------------------------+| 1  | 1       | 'Hello!' || 1  | 2       | '¡Hola!' || 1  | 3       | 'Salut!' |+----+---------+----------+

I need to create a .CSV file out of it for subsequent processing:

greeting.csv:---------------------id;en;es;fr1;Hello!;¡Hola!;Salut!---------------------

I can select all languages as a row by using GROUP_CONCAT:

SELECT
id,
GROUP_CONCAT(name SEPARATOR ';') as 'name'
FROM
greeting
WHERE
greeting.id = 1;

它产生的结果:

id | name---+-------------------- 1 | Hello!;¡Hola!;Salut!

但是,它需要对代码中的“名称”列进行特殊处理,因为我必须先标记连接的字符串,然后才能继续。

我想知道是否有办法得到这样的结果:

id | en     | es     | fr---+--------+--------+------- 1 | Hello! | ¡Hola! | Salut!

所以我可以以统一的方式处理列。

谢谢。

最佳答案

你想要一个 pivot ,这在 mysql 中不受本地支持,但很容易编写代码:

SELECT
t1.id,
t1.name en,
t2.name es,
t3.name fr
FROM greeting t1
JOIN greeting t2 ON t1.id = t2.id AND t2.lang_id = 2
JOIN greeting t2 ON t1.id = t3.id AND t3.lang_id = 3
WHERE t1.lang_id = 1
AND t1.id = 1

您可以省略最终条件 t1.id = 1 以获得所有问候语。

关于mysql - 如何在没有 GROUP_CONCAT 的情况下将行转换为列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20740518/

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