【发布时间】:2021-08-20 19:18:45
【问题描述】:
-
尝试使用 not in() 函数获取不包含 NULL 或 '' 字符串的记录但无法正常工作。请提出任何建议。
select * from table where colm1 = 'xyz' and colm2 not in (NULL, '') and id = 268594; -
在第二种情况下,我有表 A 和 B。表 B 可以有多个记录映射到一个表 A 记录。我想在表 B 上执行 where 子句。如果记录可用,则需要检查值不为空或为空。如何在不执行 2 次选择查询的情况下执行:
表 A:
| a_id | name |
|---|---|
| 1 | "xyz" |
表 B:
| B_id | type | value | A_id |
|---|---|---|---|
| 1 | "x" | "abd" | 1 |
| 2 | "y" | "cdv" | 1 |
因此,如果表 B 中不存在类型为 "x and A_id" =1 的记录,则希望选择表 A 的记录,如果存在,则仅当值为 NULL 或 '' 时才选择表 A 记录。
我尝试了这些查询,但它们不起作用:
select *
from A
where not exists (select *
from B
where type = 'x'
and value = null
or value = ''
and A_id = a_id);
【问题讨论】:
-
一共有多少个问题?
-
有两个问题。我提到了 1 和 2。
-
把它们分成2个问题比较容易
-
是的。每个帖子一个问题。
标签: mysql not-exists notin