SQL从一列中选择不同的值,其中另一列具有不同的值

时间:2015-10-01 11:47:59

标签: mysql sql

我有大量的数据。要解释这个问题,请考虑这个极小的数据集:

id     col1    col2
-------------------
1      ab      12
2      ab      12
3      ab      12
4      cd      34
5      cd      43
6      ef      34
7      ef      56
8      ef      34

我需要的是在col1中选择col2中有多个值的所有不同值。所以上面的结果会是这样的:

col1
----
cd
ef

或者甚至更好,col2中每个唯一对应值的一行:

col1    col2
------------
ab      12
cd      34
cd      43
ef      34
ef      56

2 个答案:

答案 0 :(得分:1)

您可以使用group byhaving

执行此操作
select col2
from t
group by col2
having min(col2) <> max(col2);

如果您只想要不同的值,请使用select distinct

select distinct col1, col2
from t;

答案 1 :(得分:1)

首先,返回具有至少两个不同col2值的col1值:

$(".cs-select").change(function(){

    var value = this.value;

    if (value == "FT"){
        $(".your-field-shown").show();
        $(".your-field-hidden").hide();
    }

    elseif (value == "PT"){
        $(".your-field-shown").hide();
        $(".your-field-hidden").show();
    }
});

其次,当col1至少有两个不同的col2值时,使用col2返回col1:

select col1 from
tablename
group by col1
having count(distinct col2) >= 2