我有一个像这样的交易表
id , name , code , flag
1 , john , 1234-3, 2
2 , joe , 1111-2, 1
3 , paul , 1234-3, 3
4 , asdf , 1234-3, 3
5 , asdf , 1111-2, 5
6 , asdf , 1234-3, 8
7, asdf , 1234-3, 0
Run Code Online (Sandbox Code Playgroud)
基本上,我想要做的是将'flag'fild中的所有数字设置为与特定代码相关的最大值.
因此,在代码1234-3的情况下,它应该使用具有标记num 8的代码更新所有标志,在1111-2的情况下,它需要用该代码用5更新所有标志.
我想将它转换成这个表
id , name , code , flag
1 , john , 1234-3, 8
2 , joe , 1111-2, 5
3 , paul , 1234-3, 8
4 , asdf , 1234-3, 8
5 , asdf , 1111-2, 5
6 , asdf , 1234-3, 8
7 , asdf , 1234-3, 8
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想在MySQL中完成这个.有一大堆数据.
UPDATE t_transaction tu
JOIN (
SELECT code, MAX(flag) AS flag
FROM t_transaction
GROUP BY
code
) t
ON tu.code = t.code
SET tu.flag = t.flag
Run Code Online (Sandbox Code Playgroud)