उदाहरण:
mysql> create database dbase;
Query OK, 1 row affected (0.00 sec)
mysql> use dbase;
Database changed
mysql> create table tbl (id integer not null primary key auto_increment, field2 integer, field3 integer);
Query OK, 0 rows affected (0.04 sec)
mysql> SET @sql = CONCAT ('SELECT ' , (SELECT REPLACE (GROUP_CONCAT(COLUMN_NAME) , 'id,' , '') FROM INFORMATION_SCHEMA.COLUMNS WHERE T
ABLE_NAME = 'tbl' AND TABLE_SCHEMA = 'dbase'), ' FROM tbl');
Query OK, 0 rows affected (0.01 sec)
mysql> select @sql;
+-------------------------------+
| @sql |
+-------------------------------+
| SELECT field2,field3 FROM tbl |
+-------------------------------+
1 row in set (0.00 sec)
mysql>
अब आप ही तैयार करने और निष्पादित करने के लिए है ..
mysql> prepare stmt from @sql;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> execute stmt;
Empty set (0.00 sec)
कोई पंक्ति नहीं है क्योंकि पंक्तियाँ तालिका में डाला है नहीं है लौट आए।
और अब डालने और फिर से क्रियान्वित ..
mysql> insert into tbl (field2, field3) values (1 , 2) , (3 , 4) ;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> execute stmt;
+--------+--------+
| field2 | field3 |
+--------+--------+
| 1 | 2 |
| 3 | 4 |
+--------+--------+
2 rows in set (0.00 sec)
वापसी 'आईडी' की @sql में निर्दिष्ट के अलावा सभी तालिका क्षेत्रों
स्रोत
2011-12-21 13:39:24
दुर्भाग्य से, वहाँ वास्तव में एक और तरीका है। मेरा प्रश्न देखें [चयन * EXCEPT] (http://stackoverflow.com/questions/413819/select-except) जो एक समान नस में है। –