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

如何从数字列表中查询数据库未包含的用户ID

找出列表中未存在于Users表的ID

方法一:使用EXCEPT关键字(推荐)

通过VALUES子句将你的ID列表构造成临时数据集,再与Users表的Id字段做差集运算,得到不在表中的ID:

SELECT Id FROM (
    VALUES (1), (9), (12), (22), (109)
) AS TargetIds(Id)
EXCEPT
SELECT Id FROM Users;

EXCEPT会自动去除重复项,仅返回存在于临时数据集但不存在于Users表中的ID,完全匹配你的需求。

方法二:使用LEFT JOIN筛选匹配失败项

如果对JOIN逻辑更熟悉,可以用LEFT JOIN保留所有目标ID,再筛选出Users表中无法匹配的记录:

SELECT t.Id
FROM (
    VALUES (1), (9), (12), (22), (109)
) AS t(Id)
LEFT JOIN Users u ON t.Id = u.Id
WHERE u.Id IS NULL;

当LEFT JOIN无法找到匹配的Users记录时,u.Id会返回NULL,筛选这些记录即可得到未录入的ID。

兼容低版本MySQL的写法

如果你的MySQL版本低于8.0,不支持VALUES子句构造临时表,可以用UNION ALL拼接ID:

EXCEPT版本:

SELECT 1 AS Id
UNION ALL SELECT 9
UNION ALL SELECT 12
UNION ALL SELECT 22
UNION ALL SELECT 109
EXCEPT
SELECT Id FROM Users;

LEFT JOIN版本:

SELECT t.Id
FROM (
    SELECT 1 AS Id
    UNION ALL SELECT 9
    UNION ALL SELECT 12
    UNION ALL SELECT 22
    UNION ALL SELECT 109
) AS t
LEFT JOIN Users u ON t.Id = u.Id
WHERE u.Id IS NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:40:37