如果行所属的组符合另一列的条件,我想将行中列的值设置为1。
这是一个例子。鉴于此 table1 ,
name | col | flag
------------------
a 1 0
a 2 0
b 1 0
b 4 0
c 2 0
c 3 0
我想将所有标志列条目设置为1,其中name-column组包含col = 2的行。所以上面的表格将是之后的
name | col | flag
------------------
a 1 1
a 2 1
b 1 0
b 4 0
c 2 1
c 3 1
我有以下代码,但它似乎不起作用(即所有标记条目保持为0)
UPDATE table1 t
LEFT JOIN (
SELECT name, col=2 flag
FROM table1
GROUP BY name
) t2
ON t.name = t2.name
SET t.flag=t2.flag
我在这里做错了什么?