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)
您可以使用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 是您要更新的表。
注意:这是一个糟糕的数据库结构!它肯定会在将来引起问题,尤其是在需要进行连接时。我强烈建议您标准化数据并将每个描述和值存储在自己的记录中。