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

如何使用MySQL查询指定值中表内不存在的记录?

实现需求的方法

可以实现,核心思路是先把你指定的所有值构造成一个临时数据集,再和table1做左连接,这样既能返回表中已存在的记录,也能列出指定值里不存在的记录(对应name字段为NULL)。

适用于支持CTE(公共表表达式)的数据库(MySQL 8.0+、PostgreSQL、SQL Server等)

WITH target_values AS (
    SELECT value FROM (VALUES 
        ('1a2b3c'), ('8s9r3h'), ('5h2j0m'), ('4m5m6n'), ('8i9o7l')
    ) AS v(value)
)
SELECT tv.value, t1.name
FROM target_values tv
LEFT JOIN table1 t1 ON tv.value = t1.value;

适用于MySQL 5.7及更早版本(不支持VALUES子句构造数据集)

SELECT tv.value, t1.name
FROM (
    SELECT '1a2b3c' AS value UNION ALL
    SELECT '8s9r3h' UNION ALL
    SELECT '5h2j0m' UNION ALL
    SELECT '4m5m6n' UNION ALL
    SELECT '8i9o7l'
) tv
LEFT JOIN table1 t1 ON tv.value = t1.value;

执行上述语句后,table1中存在的记录会正常显示对应的name,不存在的记录(如'4m5m6n'、'8i9o7l')的name字段会显示NULL,完全符合你要的输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:43:17