gpt4 book ai didi

mysql - 每种语言/产品名称翻译的分组依据和附加列

转载 作者:行者123 更新时间:2023-11-29 07:30:36 26 4
gpt4 key购买 nike

如果我在 MySQL 数据库中有这些数据:

PID     LANG    TRANS
1 EN Apple
1 DE Apfle

我想得到sql结果:

PID     EN_TRANSLATION      DE_TRANSLATION
1 Apple Apfle

如何做到这一点?我已经有了表格和所有内容,但需要帮助编写查询,该查询将为我提供每种产品的每种结果的每种语言的列。

注意:我不知道语言集!它可以是 EN、DE 或其他任何形式..

谢谢!

最佳答案

如果您知道LANG集,那么您可以使用以下技术来生成数据透视图

select 
PID,
max(case when LANG = 'EN' then TRANS end) as EN_TRANSLATION,
max(case when LANG = 'DE' then TRANS end) as DE_TRANSLATION
from table_bame
group by PID

如果 LANG 值未知,那么您需要使用动态 sql 作为

set @sql = null;
select
group_concat(distinct
concat(
'max(case when LANG = ''',
LANG,
''' then TRANS end) AS ',
concat(LANG,'_TRANSLATION')
)
) into @sql
from table_name ;

set @sql = concat('select PID, ', @sql, ' from table_name
group by PID
');

prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

http://www.sqlfiddle.com/#!9/95d29/1

关于mysql - 每种语言/产品名称翻译的分组依据和附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32776790/

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