हम नई पंक्ति सम्मिलन के मामले में INSERT INTO कमांड के साथ सशर्त सम्मिलन यानी WHERE क्लॉज का उपयोग कर सकते हैं। यह निम्न तरीकों से किया जा सकता है:
डमी टेबल की मदद से
इस मामले में, हम कुछ शर्तों के साथ डमी टेबल से मान डालते हैं। सिंटैक्स निम्न हो सकता है:
INSERT INTO table_name(column1,column2,...) SELECT value1,value2,... 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)
mysql> SELECT * FROM testing;
+------+-----------+
| id | item_name |
+------+-----------+
| 1 | Book |
+------+-----------+
उपरोक्त उदाहरण में, हमने 'testing' टेबल बनाई और इसमें पंक्तियाँ डालने के लिए डमी टेबल dual का उपयोग एक शर्त के साथ किया। यदि शर्त सत्य है तो MySQL टेबल में पंक्ति डालता है अन्यथा नहीं।
समान संरचना वाली टेबल की मदद से
यदि हम ऐसी टेबल में डालना चाहते हैं जिसकी संरचना दूसरी टेबल के समान है तो निम्न उदाहरण में प्रदर्शित किया गया है कि हम सशर्त सम्मिलन कैसे कर सकते हैं यानी INSERT INTO स्टेटमेंट के साथ WHERE क्लॉज का उपयोग कैसे कर सकते हैं।
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 |
+------+--------+
उपरोक्त उदाहरण में, हमने 'dummy1' टेबल में मान डाले हैं, जिसकी संरचना 'dummy' टेबल के समान है, केवल वही पंक्ति डालने की शर्त के साथ जहां 'id = 1'।