You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定WHERE IN列表获取数据库表中存在/不存在的名称

解决方案

1. 查询列表中存在于name_list的名称

你原有的语句本身可以正常使用,也可以用关联写法实现相同效果:

SELECT t.name
FROM (VALUES ('name1'), ('name2'), ('name3'), ('name4')) AS t(name)
JOIN name_list nl ON t.name = nl.name;

2. 查询列表中不存在于name_list的名称

核心是先把你指定的名称列表转换成临时数据集,再通过左关联筛选出表中无匹配的项:

SELECT t.name
FROM (VALUES ('name1'), ('name2'), ('name3'), ('name4')) AS t(name)
LEFT JOIN name_list nl ON t.name = nl.name
WHERE nl.name IS NULL;

执行结果示例

第一条语句输出:

search result 1 (name found)
name1
name2
name4

第二条语句输出:

search result 2 (name not found)
name3

如果你的数据库不支持VALUES子句,可改用UNION ALL构造临时列表,替换上述语句中的(VALUES ...)部分即可:

SELECT 'name1' AS name
UNION ALL SELECT 'name2'
UNION ALL SELECT 'name3'
UNION ALL SELECT 'name4'

内容的提问来源于stack exchange,提问作者Kurt Schwob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:42:33