从MySQL数据库表版本8.0.17中提取非空数据
这是数据库从MySQL数据库表版本8.0.17中提取非空数据,mysql,Mysql,这是数据库MySql8.0.17版上的wtable的结构和数据 DROP TABLE IF EXISTS `wtable`; CREATE TABLE `wtable` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `img` varchar(255) DEFAULT NULL, `ppt` varchar(255) DEFAULT NULL, `xls` varchar(255) DEFAULT NULL, `pdf` varchar(2
MySql
8.0.17版上的wtable
的结构和数据
DROP TABLE IF EXISTS `wtable`;
CREATE TABLE `wtable` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`img` varchar(255) DEFAULT NULL,
`ppt` varchar(255) DEFAULT NULL,
`xls` varchar(255) DEFAULT NULL,
`pdf` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB;
-- ----------------------------
-- Records of wtable
-- ----------------------------
INSERT INTO `wtable` VALUES (1, NULL, 'file.ppt', NULL, 'file.pdf');
INSERT INTO `wtable` VALUES (2, NULL, NULL, 'file.xls', NULL);
INSERT INTO `wtable` VALUES (3, 'file.jpg', NULL, NULL, NULL);
我需要从wtable
所有填充的行中提取数据,这是我的查询
SELECT
img,
ppt,
xls,
pdf
FROM
`wtable`
WHERE
( img IS NOT NULL OR ppt IS NOT NULL OR xls IS NOT NULL OR pdf IS NOT NULL );
+----------+----------+----------+----------+
| img | ppt | xls | pdf |
+----------+----------+----------+----------+
| NULL | file.ppt | NULL | file.pdf |
| NULL | NULL | file.xls | NULL |
| file.jpg | NULL | NULL | NULL |
+----------+----------+----------+----------+
3 rows in set (0.02 sec)
但我需要这个输出。。。有什么建议吗
+----------+
| Allfiles |
+----------+
| file.ppt |
| file.pdf |
| file.xls |
| file.jpg |
+----------+
帮我做吧你需要工会
SELECT img allfiles
FROM `wtable`
WHERE img IS NOT NULL
UNION ALL
SELECT ppt
FROM `wtable`
WHERE ppt IS NOT NULL
UNION ALL
SELECT pdf
FROM `wtable`
WHERE pdf IS NOT NULL
UNION ALL
SELECT xls
FROM `wtable`
WHERE xls IS NOT NULL
对不同的结果使用UNION,对重复的行使用UNION ALL