mysql SELECT WHERE只有特定的列具有值

时间:2017-06-16 18:21:50

标签: mysql

美好的一天

我有一个包含十几列的表,我正在寻找一个返回仅填充特定列的行的查询。所以它不应该返回填充“非法”列的行。

类似的东西:

SELECT * FROM table WHERE col1 is NOT NULL 
AND all_other_cols is NULL;

^我知道可以通过列出每个其他列并指示“not NULL”来完成,但还有另一种方法吗?

希望这是有道理的

更新:

根据下面的答案,我只会使用“DESCRIBE my_table”;然后构建一个查询,使用'is NULL'过滤所有不需要的列

3 个答案:

答案 0 :(得分:2)

没有直接的功能。但可以做的是:

您将所有表列连接到单个字符串,然后针对 not 的列NULL测试该字符串。如果所有其他列都为空或保持NULL,则这两个值只能相同。

这个问题的答案可能有助于如何简化:

MySQL concatenating all columns

答案 1 :(得分:1)

我认为你的方法是最简单的方法

答案 2 :(得分:1)

您可以使用ISNULL条件:check out here