Clever solution!
my $sql = sprintf "UPDATE table SET id = %d - id WHERE id IN ( %d, %d
+)",
($val1+$val2), $val1, $val2;
mysql> select * from test;
+------+------+
| id | num |
+------+------+
| 1 | 100 |
| 2 | 200 |
+------+------+
2 rows in set (0.00 sec)
mysql> UPDATE test SET id = 3 - id WHERE id IN (1,2);
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select * from test;
+------+------+
| id | num |
+------+------+
| 2 | 100 |
| 1 | 200 |
+------+------+
2 rows in set (0.00 sec)
mysql>