Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL INSERT INTO SELECT: दूसरी टेबल से एक साथ कई पंक्तियाँ डालें

आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable1(Name varchar(100)); 
Query OK, 0 rows affected (0.55 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable1 values('Chris'); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values('Robert'); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values('Adam'); 
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1 values('Bob'); 
Query OK, 1 row affected (0.20 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable1;

यह निम्नलिखित आउटपुट देगा:

+--------+
| Name   |
+--------+
| Chris  |
| Robert |
| Adam   |
| Bob    |
+--------+
4 rows in set (0.00 sec)

दूसरी टेबल बनाने की क्वेरी

mysql> create table DemoTable2(ListOfEmployee text); 
Query OK, 0 rows affected (0.59 sec)

INSERT INTO SELECT का उपयोग करके एक साथ कई पंक्तियाँ डालने की क्वेरी

mysql> insert into DemoTable2(ListOfEmployee) select group_concat(Name) from DemoTable1; 
Query OK, 1 row affected (0.20 sec)
Records: 1 Duplicates: 0 Warnings: 0

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable2;

यह निम्नलिखित आउटपुट देगा:

+-----------------------+
| ListOfEmployee        |
+-----------------------+
| Chris,Robert,Adam,Bob |
+-----------------------+
1 row in set (0.00 sec)

व्याख्या

  • GROUP_CONCAT(Name) सभी नामों को कॉमा-सेपरेटेड स्ट्रिंग में जोड़ता है
  • INSERT INTO ... SELECT एक ही क्वेरी में डेटा कॉपी करता है
  • परिणामस्वरूप दूसरी टेबल में केवल एक पंक्ति बनती है जिसमें सभी नाम होते हैं
  • GROUP_CONCAT की डिफ़ॉल्ट सीमा 1024 बाइट्स है (इसे group_concat_max_len से बदला जा सकता है)
  1. - MySQL में AUTO_INCREMENT टेबल में INSERT INTO SELECT कैसे करें?

    MySQL में AUTO_INCREMENT प्राइमरी की वाली टेबल में INSERT INTO ... SELECT का उपयोग करते समय, आप स्पष्ट रूप से ID मान प्रदान कर सकते हैं या ऑटो-जनरेट होने दे सकते हैं। दोनों दृष्टिकोण वैध हैं लेकिन अलग व्यवहार करते हैं। उदाहरण: स्पष्ट ID के साथ INSERT INTO SELECT ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql&

  1. - MySQL में INSERT INTO SELECT से दूसरी टेबल के मान लेकर नई टेबल भरें

    सिंटैक्स insert into targetTable(col1, col2) select sourceCol1, sourceCol2 from sourceTable where condition; उदाहरण insert into demo83(id,username) select id,name from demo82 where id=101; परिणाम +------+----------+ | id | username | +------+----------+ | 101 | Bob | | 101 | David |

  1. - MySQL में एक टेबल से दूसरी टेबल में डेटा सम्मिलित करना

    परिचय MySQL में INSERT INTO ... SELECT स्टेटमेंट का उपयोग करके एक टेबल से डेटा चुनकर दूसरी टेबल में सम्मिलित किया जा सकता है। पहली टेबल निर्माण और डेटा select * from DemoTable1; +------+-----------+ | Id | FirstName | +------+-----------+ | 101 | Adam | | 102 | John | +------+-------