选择所有没有特定字段的元素的查询

9avjhtql  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(358)

首先,我使用的是mysql 5.6
我要选择至少满足以下请求之一的所有元素:
没有特定字段。
某个字段有一个空值(对于空值,我的意思是: len(trim(value)) == 0 )
我举个例子更清楚一点

table2
id|field|value
1 |x    |12
1 |y    |23
1 |z    |34
2 |x    |45
2 |y    |56
2 |z    |  <---- is an empty string with 0/1 spaces
3 |x    |67

所以我想要的是,举个例子,如果我想要所有没有字段的字段 z 我应该得到( 2,3 )如果所有字段没有 y 我应该得到( 3 )
这就是我尝试过却没有成功的方法:

SELECT t12.id 
FROM table2 AS t12
WHERE NOT IN ( 
    SELECT t2.id 
    FROM table2 as t2
    WHERE t2.field = 'y' 
        AND t2.value <> '' AND t2.value IS NOT NULL
)
hivapdat

hivapdat1#

select id from t group by id
having min(len(value)) = 0 or count(case when field = 'x' then 1 end) = 0

组合中的多个条件 case 如果标准必须由一行而不是整个组满足。

相关问题