Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะใช้ส่วนคำสั่ง WHERE กับคำสั่ง MySQL INSERT INTO ได้อย่างไร


เราสามารถใช้ Conditional insert เช่น WHERE clause พร้อมคำสั่ง INSERT INTO ในกรณีของการแทรกแถวใหม่ สามารถทำได้ด้วยวิธีดังต่อไปนี้ -

ด้วยความช่วยเหลือของตารางจำลอง

ในกรณีนี้ เราแทรกค่าจากตารางจำลองพร้อมกับเงื่อนไขบางประการ ไวยากรณ์สามารถเป็นดังนี้ −

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

ตัวอย่าง

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)

ในตัวอย่างข้างต้น เราได้สร้างตาราง 'การทดสอบ' และสำหรับการแทรกแถวเข้าไปนั้น เราได้ใช้ตารางจำลองแบบคู่พร้อมเงื่อนไข หากเงื่อนไขเป็นจริง MySQL ให้แทรกแถวลงในตาราง มิฉะนั้น ไม่

ด้วยความช่วยเหลือของตารางโครงสร้างเดียวกัน

หากเราต้องการแทรกในตารางที่มีโครงสร้างเหมือนกับตารางอื่น ในตัวอย่างต่อไปนี้จะแสดงให้เห็นว่าเราสามารถแทรกแบบมีเงื่อนไขได้อย่างไร เช่น เราจะใช้ WHERE clause กับคำสั่ง 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)

ในตัวอย่างข้างต้น เราได้แทรกค่าในตาราง 'dummy1' ซึ่งมีโครงสร้างเหมือนกับตาราง 'dummy' โดยมีเงื่อนไขให้แทรกเฉพาะแถวนั้นโดยที่ 'id =1'