REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is insertedOR 用两条SQL, INSERT INTO WHERE UPDATE WHERE
看手册:insert into ... on duplicated key update ...
insert into ... on duplicated key update ... 这条是在INSERT INTO SELECT中使用的吧
用两条SQL,
INSERT INTO WHERE
UPDATE WHERE
这条是在INSERT INTO SELECT中使用的吧
insert into mytable values(0, 0), (1, 1), (2, 2);
像要上面这句应该改成什么样的,谢谢了。
Query OK, 0 rows affected (0.13 sec)mysql> insert into csdn_mysql values (4) on duplicate key update id = 5;
Query OK, 1 row affected (0.03 sec)mysql> insert into csdn_mysql values (4),(6) on duplicate key update id = 5;
Query OK, 3 rows affected (0.05 sec)
Records: 2 Duplicates: 1 Warnings: 0mysql> select * from csdn_mysql;
+----+
| id |
+----+
| 5 |
| 6 |
+----+
2 rows in set (0.00 sec)
弱弱地再问一句:
insert into csdn_mysql values (4),(6) on duplicate key update id = 5;
像上面这句如果记录已存在则设置新id为一个变量。
比如当id为4的记录已存在时,把该记录的id变成5
当6已存在时,把6变成7
insert into csdn_mysql values (6) on duplicate key update id = 7;
insert into mytable values(0, 0), (1, 1), (2, 2);
这样插入3条记录,如果相同的记录(所有值都相同)已存在则不插入。
看不太明白,谁给解释下好吗,用实例。
insert into mytable values(0, 0), (1, 1), (2, 2);
根据它的说法要怎么改。
用两条SQL
她说的不是MySQL的例子。