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

วิธีใช้ WHERE clause ร่วมกับ INSERT INTO ใน MySQL

MySQL ไม่รองรับ INSERT ... WHERE โดยตรง แต่สามารถทำ conditional insert ได้ 2 วิธี:

1. ใช้ตาราง Dummy (DUAL)

INSERT INTO table_name(col1, col2) SELECT val1, val2 FROM dual WHERE condition;

ตัวอย่าง

mysql> CREATE TABLE testing(id INT, item_name VARCHAR(10));
mysql> INSERT INTO testing (id, item_name) SELECT 1, 'Book' FROM Dual WHERE 1=1;
Query OK, 1 row affected (0.11 sec)

ถ้าเงื่อนไขเป็นจริง จะ INSERT, ไม่จริงจะไม่ INSERT

2. ใช้ตารางที่มีโครงสร้างเหมือนกัน

mysql> INSERT INTO dummy1(id, name) SELECT id, name FROM dummy WHERE id = 1;
Query OK, 1 row affected (0.06 sec)

mysql> SELECT * FROM dummy;
+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
| 2    | Aarav  |
+------+--------+

mysql> SELECT * FROM dummy1;
+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
+------+--------+

คัดลอกเฉพาะแถวที่ id = 1 จาก dummy ไป dummy1