UPDATE TABLE_A t
JOIN
( SELECT type
, MIN(value) AS value
FROM TABLE_A
GROUP BY type
HAVING COUNT(DISTINCT value) = 1
) AS tu
ON tu.type = t.type
SET t.value = tu.value
WHERE t.value IS NULL
Như Peufeu đã chỉ, DISTINCT
cần thiết để nắm bắt các trường hợp như thế này, trong đó tôi cho rằng hàng id =3 cũng phải được cập nhật:
TABLE-A
id | type | value
1 | 10 | 123456
2 | 10 | 123456
3 | 10 | NULL
4 | 20 | 123456
5 | 20 | 654321
6 | 20 | NULL