By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE TB
(`id` int, `nazwa` varchar(2), `status` int, PRIMARY KEY (ID))
;
INSERT INTO TB
(`id`, `nazwa`, `status`)
VALUES
(1, 'n1', 1),
(2, 'n1', 0),
(3, 'n1', -1)
;
select * from TB
id | nazwa | status |
---|---|---|
1 | n1 | 1 |
2 | n1 | 0 |
3 | n1 | -1 |
INSERT INTO TB
(`id`, `nazwa`, `status`)
VALUES
(1, 'n2', 2),
(2, 'n2', 2),
(3, 'n2', 2)
ON DUPLICATE KEY UPDATE id=values(id),nazwa=values(nazwa),status=case when status = -1 then status else values(status) end
select * from TB
id | nazwa | status |
---|---|---|
1 | n2 | 2 |
2 | n2 | 2 |
3 | n2 | -1 |