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

MySQL/MariaDB查询给定ID列表返回存在及缺失ID对应数据的实现方法

MySQL/MariaDB实现指定ID匹配查询方案

核心思路是先构造包含所有待查询ID的临时行集,再和目标表做左连接,左表的所有ID会保留,右表匹配不到时label字段自动返回NULL。

方案1:适配 MySQL 8.0+ / MariaDB 10.3+ 版本

高版本已经支持VALUES行构造语法,写法和PostgreSQL基本一致:

SELECT t.id, your_table.label
FROM (VALUES ROW(3), ROW(4), ROW(5)) AS t(id)
LEFT JOIN your_table ON t.id = your_table.id;

方案2:兼容所有MySQL/MariaDB版本的通用写法

低版本不支持VALUES构造行集的话,用UNION ALL拼接待查询ID即可:

SELECT t.id, your_table.label
FROM (
    SELECT 3 AS id
    UNION ALL SELECT 4
    UNION ALL SELECT 5
) AS t
LEFT JOIN your_table ON t.id = your_table.id;

把上述SQL中的your_table替换为实际的表名,即可得到预期查询结果:

id | label
----------
 3 | green
 4 | NULL
 5 | blue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:15:04