首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL数据库表8.0.17版中提取非空数据

从MySQL数据库表8.0.17版中提取非空数据
EN

Stack Overflow用户
提问于 2021-02-12 12:09:16
回答 1查看 23关注 0票数 2

这是wtable在数据库MySql版本8.0.17上的结构和数据。

代码语言:javascript
复制
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中提取填充的所有行,这是我的查询

代码语言:javascript
复制
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)

但我需要这个输出。有什么建议吗?

代码语言:javascript
复制
+----------+
| Allfiles |
+----------+
| file.ppt |
| file.pdf |
| file.xls |
| file.jpg |
+----------+

帮我做

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 12:14:11

你需要工会

代码语言:javascript
复制
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用于gent和复制行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66171619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档