Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào chúng ta có thể sử dụng mệnh đề WHERE với lệnh MySQL INSERT INTO?

Chúng ta có thể sử dụng chèn có điều kiện, tức là mệnh đề WHERE với lệnh INSERT INTO trong trường hợp chèn hàng mới. Nó có thể được thực hiện với những cách sau -

Với sự trợ giúp của bảng giả

Trong trường hợp này, chúng tôi chèn giá trị từ bảng giả cùng với một số điều kiện. Cú pháp có thể như sau -

INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];

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)

Trong ví dụ trên, chúng tôi đã tạo một bảng "testing" và để chèn các hàng vào đó, chúng tôi đã sử dụng bảng giả kép với một điều kiện. Nếu điều kiện là đúng, MySQL chèn hàng vào bảng, ngược lại thì không.

Với sự trợ giúp của cùng một bảng cấu trúc

Nếu chúng ta muốn chèn vào một bảng có cấu trúc giống với một bảng khác thì trong ví dụ sau, chúng ta đã chứng minh rằng cách chúng ta có thể chèn có điều kiện, tức là cách chúng ta có thể sử dụng mệnh đề WHERE với câu lệnh INSERT INTO.

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)

Ở đây trong ví dụ trên, chúng tôi đã chèn các giá trị trong bảng ‘dummy1’, có cấu trúc giống như bảng ‘dummy’, với điều kiện chỉ chèn hàng đó ở vị trí ‘id =1’.