从表中没有列为空的所有行中选择

时间:2014-12-19 19:23:12

标签: mysql

enter image description here

当我使用此查询时:

SELECT * from table

也会显示空结果。

当我使用时:

SELECT * from table WHERE tablet<>''

我得到了我想要达到的结果,但用于tablet。我想为整个表格实现这个目标。

类似的东西:

SELECT * from table //that is not empty

有什么想法吗?谢谢!

4 个答案:

答案 0 :(得分:2)

我认为您正在寻找包含2列的单个列表:

SELECT `Handy` AS Category,
T.Handy AS Description
FROM Table AS T
WHERE T.Handy <> ''
UNION ALL
SELECT `PC` AS Category,
T.PC AS Description
FROM Table AS T
WHERE T.PC <> ''
UNION ALL
SELECT `Notebook` AS Category,
T.Notebook AS Description
FROM Table AS T
WHERE T.Notebook <> ''
UNION ALL
SELECT `Tablet` AS Category,
T.Tablet AS Description
FROM Table AS T
WHERE T.Tablet <> ''
ORDER BY Category

答案 1 :(得分:0)

执行此操作的唯一方法是对每个字段使用and语句

SELECT * from table WHERE tablet<>'' AND handy<>'' AND pc<>''

(抱歉,我的工作阻止了imgr.com,所以我看不到你的截图,也不知道你桌子上的所有栏目。)

答案 2 :(得分:0)

您可以使用一堆!= ''条件:

SELECT *
FROM   table
WHERE  handy != '' AND
       pc != '' AND
       notebook != '' AND
       tablet != ''

答案 3 :(得分:0)

仅使用where子句的简洁查询将使用LEAST()函数,并确保最小值不为空,如下所示:

SELECT *
FROM myTable
WHERE LEAST(handy, pc, notebook, tablet) <> '';

修改

适用于Fiddle