Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择不同的行并应用筛选器_Mysql_Sql_Distinct - Fatal编程技术网

Mysql 选择不同的行并应用筛选器

Mysql 选择不同的行并应用筛选器,mysql,sql,distinct,Mysql,Sql,Distinct,谁能帮我搬一下这张桌子吗 col1 col2 0 1 0 1 1 0 1 1 2 0 2 1 3 1 3 1 () 我想从第一列中选择不同的值,并过滤掉第二列中有零的值。结果应该是以下列表:[0,3]听起来您在寻找这样的查询: select distinct col1 from test where col1 not in (select col1 from test where c

谁能帮我搬一下这张桌子吗

col1    col2
0       1
0       1
1       0
1       1
2       0
2       1
3       1
3       1
()


我想从第一列中选择不同的值,并过滤掉第二列中有零的值。结果应该是以下列表:[0,3]

听起来您在寻找这样的查询:

select distinct col1 from test where 
    col1 not in (select col1 from test where col2 = 0)
SELECT DISTINCT `col1`
FROM `test`
WHERE `col1` NOT IN (
  SELECT `col1`
  FROM `test`
  WHERE `col2` = 0)
SELECT DISTINCT a.`col1`
FROM `test` a
LEFT JOIN `test` b ON a.`col1` = b.`col1` AND b.`col2` = 0
WHERE b.`col1` IS NULL
或者使用
连接
,如下所示:

SELECT DISTINCT `col1`
FROM `test`
WHERE `col1` NOT IN (
  SELECT `col1`
  FROM `test`
  WHERE `col2` = 0)
SELECT DISTINCT a.`col1`
FROM `test` a
LEFT JOIN `test` b ON a.`col1` = b.`col1` AND b.`col2` = 0
WHERE b.`col1` IS NULL

选择col1
从测试
根据col1分组
具有min(col2)0的
测试:

如果col2的值低于0,则可以使用:

select col1
from test
group by col1
having group_concat(col2) not like '%,0%'
   and group_concat(col2) not like '%0,%'
   and group_concat(col2) <> '0'
选择col1
从测试
根据col1分组
组_concat(col2)与“%”,0%”不同
组_concat(col2)与“%0,%”不同
组_concat(col2)'0'

您似乎没有主键。这是关系表的问题。我简化了StackOverflow的表结构。感谢您的快速响应!我给你“接受答案”是因为你是最快的:-)那么col2=-1呢?您可能需要添加和max(col2)0他的数据显示该列中的所有0和1。是的,它确实依赖于它实际上是表中数据的代表。但是,如果该数据代表了他表中的数据,那么它的执行计划比他选择的答案更清晰,因为它不使用子查询。