如何分离字符串并重新构建它

D. *_*yal 10 mysql sql loops list

分离字符串列表并用mysql中的新值替换相同的列表我在table_1中有以下数据表table_1(当前保存的结构)

code        value
12_A        ["A","B","C","D"]  
12_B        ["E","F","G","H"]
12_3        ["I","J","K","L"]
Run Code Online (Sandbox Code Playgroud)

但每个代码都有不同的值和不同的描述.喜欢::

code    value     description
12_A    A         Apple
12_A    B         Ball
12_A    C         Cat
12_A    D         Dog
12_B    E         Eagle
12_B    F         Flag
.       .         .
.       .         . 
.       .         .
Run Code Online (Sandbox Code Playgroud)

我必须从table_1中分离值列表,并需要再次保存在同一个表中,即table_1(在此结构中)::

code            value
12_A            ["Apple","Ball","Cat","Dog"]
12_B            ["Eagle","Flag",.......]
12_3            [......................] 
Run Code Online (Sandbox Code Playgroud)

sag*_*agi 4

您可以使用GROUP_CONCAT()

UPDATE Table1 s
SET s.value = (SELECT t.code,CONCAT('["',
                           GROUP_CONCAT(t.description ORDER BY t.description SEPARATOR '","'),
                           ']') 
             FROM Table_With_val t
             WHERE t.code = s.code
               AND s.value LIKE CONCAT('%"',t.value,'"%'))
Run Code Online (Sandbox Code Playgroud)

您没有提供任何结论性信息,我假设您提供的第二个数据样本是现有表,而 table1 是您要更新的表。

注意:这是一个糟糕的数据库结构!它肯定会在将来引起问题,尤其是在需要进行连接时。我强烈建议您标准化数据并将每个描述和值存储在自己的记录中。