gpt4 book ai didi

mysql concat 列作为字符串传递

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

我需要连接列值,其中列名作为字符串传递。我有一个客户,他的 MySql 表设计得很糟糕,如下所示:

-------------------------------------------
| id | column_index | c1 | c2 | c3 | .... |c50|

column_index 字段是一个以逗号分隔的列名称字符串,例如 c1,c5,c11,我想要做的是编写一个选择查询(没有存储过程等)以仅根据连接的列值返回哪些列已被定义为索引。

类似这样的事情:

SELECT id, column_index, CONCAT_WS(',' FOR col_name IN column_index)

有什么方法可以创建一个查询,为 MySql 执行类似的操作吗?

最佳答案

您的数据结构存在严重错误。也许您应该努力解决这个问题,而不是创建过于复杂的查询。

也就是说,以下内容不太漂亮,但应该可行:

select id, column_index,
concat_ws(',',
(case when find_in_set('c1', column_index) > 0 then c1 end),
(case when find_in_set('c2', column_index) > 0 then c2 end),
(case when find_in_set('c3', column_index) > 0 then c3 end),
. . .
) as vals
. . .

关于mysql concat 列作为字符串传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634484/

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