56,679
社区成员
发帖
与我相关
我的任务
分享
mysql> select * from cmp;
+----------+-----------+-----------+-----------+-----------+-----------+
| cmp_name | dep_name1 | dep_name2 | dep_name3 | dep_name4 | dep_name5 |
+----------+-----------+-----------+-----------+-----------+-----------+
| CPIC | IT | SC | RA | DA | DT |
| SZHW | IT | | RA | | DT |
| ZGRS | SA | ST | | DA | DT |
+----------+-----------+-----------+-----------+-----------+-----------+
3 rows in set (0.03 sec)
mysql>
mysql> SET @EE='';
Query OK, 0 rows affected (0.00 sec)
mysql> select @EE:=CONCAT(@EE,'select cmp_name,',COLUMN_NAME,' from cmp where ',
COLUMN_NAME,'!=\' \' union all ') from INFORMATION_SCHEMA.COLUMNS where TABLE_S
CHEMA='csdn' and TABLE_NAME='cmp' and COLUMN_NAME!='cmp_name';
+-------------------------------------------------------------------------------
| @EE:=CONCAT(@EE,'select cmp_name,',COLUMN_NAME,' from cmp where ',COLUMN_NAME,
'!=\' \' union all ')
+-------------------------------------------------------------------------------
| select cmp_name,dep_name1 from cmp where dep_name1!=' ' union all
....
5 rows in set (0.02 sec)
mysql> set @EE:=left(@EE,length(@EE)-length('union all '));
Query OK, 0 rows affected (0.00 sec)
mysql> PREPARE stmt2 FROM @EE;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> EXECUTE stmt2;
+----------+-----------+
| cmp_name | dep_name1 |
+----------+-----------+
| CPIC | IT |
| SZHW | IT |
| ZGRS | SA |
| CPIC | SC |
| ZGRS | ST |
| CPIC | RA |
| SZHW | RA |
| CPIC | DA |
| ZGRS | DA |
| CPIC | DT |
| SZHW | DT |
| ZGRS | DT |
+----------+-----------+
12 rows in set (0.00 sec)
mysql>
SET @EE='';
select @EE:=CONCAT(@EE,'select cmp_name,',COLUMN_NAME,' from cmp where ',COLUMN_NAME,'!=\' \' union all ') from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='csdn' and TABLE_NAME='cmp' and COLUMN_NAME!='cmp_name';
set @EE:=left(@EE,length(@EE)-length('union all '));
PREPARE stmt2 FROM @EE;
EXECUTE stmt2;