SQL选择不同的行,如果为空则忽略行

时间:2012-06-06 10:15:48

标签: mysql phpmyadmin

我正在使用sql查询从表中获取行。我想只选择具有不同值的行,如果没有为某行输入值,则该行不应该在那里。

SELECT DISTINCT meta_value FROM `wp_postmeta` WHERE meta_key = "aaa";

这是我正在使用的查询,我通过此查询获取不同的行,但也获取空行。

6 个答案:

答案 0 :(得分:23)

简单的解决方案:

SELECT DISTINCT meta_value 
FROM `wp_postmeta` 
WHERE meta_key = "aaa" AND meta_value != "";

答案 1 :(得分:17)

使用IS NOT NULL

尝试此查询
SELECT DISTINCT meta_value
FROM `wp_postmeta`
WHERE meta_key = "aaa"
AND meta_value IS NOT NULL ;

答案 2 :(得分:3)

我会用

where meta_key = "aaa"
AND (meta_value IS NOT NULL or meta_value != "");

但这取决于您使用的引擎,最重要的是 - 您插入空值的方式。 NULL<> 0<> ''

答案 3 :(得分:1)

SELECT DISTINCT meta_value
FROM `wp_postmeta`
WHERE meta_key = "aaa"
AND meta_value != "";

答案 4 :(得分:1)

在此查询中,如果列中包含一些空值,则会显示不同的值。

" select distinct color from tbl_product where color is not null"

我希望这段代码对所有人都有帮助。

答案 5 :(得分:1)

您需要处理meta_value列中的空值。 您可以按照以下步骤进行操作。

SELECT DISTINCT meta_value FROM wp_postmeta WHERE meta_key = 'aaa' and meta_value != ISNULL(meta_value,'')

希望这可以正常工作。