gpt4 book ai didi

mysql - 对于 IN 列表中的缺失值返回 NULL

转载 作者:可可西里 更新时间:2023-11-01 06:49:57 27 4
gpt4 key购买 nike

我有一个这样的表:

 id | val
---------
1 | abc
2 | def
5 | xyz
6 | foo
8 | bar

和类似的查询

 SELECT id, val FROM tab WHERE id IN (1,2,3,4,5)

返回

 id | val
---------
1 | abc
2 | def
5 | xyz

有没有办法让它在缺少 id 时返回 NULL,即

 id | val
---------
1 | abc
2 | def
3 | NULL
4 | NULL
5 | xyz

我想应该有一个棘手的 LEFT JOIN 本身,但我无法理解它。

编辑:我看到人们认为我想“填补序列中的空白”,但实际上我想要的是用 NULL 替换 IN 列表中的缺失值。比如这个

 SELECT id, val FROM tab WHERE id IN (1,100,8,200)

应该返回

 id | val
---------
1 | abc
100 | NULL
8 | bar
200 | NULL

此外,顺序并不重要。

EDIT2:只需添加几个相关链接:

最佳答案

你可以使用这个技巧:

SELECT v.id, t.val
FROM
(SELECT 1 AS id
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5) v
LEFT JOIN tab t
ON v.id = t.id

请参阅 fiddle here .

关于mysql - 对于 IN 列表中的缺失值返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com