我需要根据用户输入的关键字从数据库中找到匹配和不匹配的关键字。
下面是我们存储所有已知关键字的数据库架构
Table keywords
keyword varchar
以简单的方式查找匹配的关键字。我们使用以下查询来查找匹配的关键字
select keyword from keywords where keyword in ('abc', 'pqr', 'xyz')
其中 'abc'、'pqr'、'xyz' 是用户提供的关键字。
但是,我还需要找到数据库中不存在的关键字。绝对 NOT IN
不起作用,因为它将返回数据库中的所有标签,而不是不匹配的标签。例如,如果数据库中存在“abc”和“pqr”而“xyz”不存在,我期望输出如下
keyword present
abc 1
pqr 1
xyz 0
请帮帮我。
最佳答案
您可以在下面尝试 - 使用 cte
with cte1 as
(
select 'abc' as key
union
select 'pqr' union select 'xyz'
)
select keyword,case when key is null then 0 else 1 end as is_present
from keywords left join cte1 on keyword=key
关于MySQL - Where IN 查询中的匹配和不匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253424/