Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách dùng WHERE với lệnh INSERT INTO trong MySQL

Có thể dùng chèn có điều kiện (conditional insert) với WHERE trong INSERT INTO khi chèn hàng mới. Hai cách:

1. Dùng bảng giả (dummy table) DUAL

INSERT INTO table_name(column1, column2, ...) SELECT value1, value2, ... FROM dual WHERE [condition];

Ví dụ

mysql> CREATE TABLE testing(id INT, item_name VARCHAR(10));
Query OK, 0 rows affected (0.15 sec)
mysql> INSERT INTO testing (id, item_name) SELECT 1, 'Book' FROM Dual WHERE 1=1;
Query OK, 1 row affected (0.11 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM testing;
+------+-----------+
| id   | item_name |
+------+-----------+
| 1    | Book      |
+------+-----------+
1 row in set (0.00 sec)

Nếu điều kiện WHERE đúng thì chèn, sai thì không chèn.

2. Dùng bảng cùng cấu trúc

Chèn từ bảng khác có cùng cấu trúc với điều kiện:

mysql> INSERT INTO dummy1(id, name) SELECT id, name FROM dummy WHERE id = 1;
Query OK, 1 row affected (0.06 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM dummy;
+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
| 2    | Aarav  |
+------+--------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM dummy1;
+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
+------+--------+
1 row in set (0.00 sec)

Chỉ chèn hàng có id = 1 từ dummy sang dummy1.