gpt4 book ai didi

mysql - 如何在mysql中选择具有NULL值的列表 'IN'的所有行?

转载 作者:行者123 更新时间:2023-11-29 07:07:55 25 4
gpt4 key购买 nike

(重要提示:我不知道值列表,IN 值是一个参数..)

我想使用 IN 选择表中的所有行,这些值的类型为 varchar 但可能有空值,如何查询包括空值的所有行?

示例:

SELECT * FROM people WHERE name IN('Paul', 'Daniel', 'Yakov', null)

此查询将返回 Paul、Daniel 或 Yakov,但绝不会返回名称为 null 的行。

解决方案可能会建立一个联盟:

SELECT * FROM people WHERE name IN('Paul', 'Daniel', 'Yakov', null)
UNION ALL
SELECT * FROM people WHERE name IN(??????)

与??????我的意思是我需要放什么来选择空值?

你能帮忙吗?谢谢。

重要提示:如何检查 IN 列表中是否存在空值?

最佳答案

此查询将返回 Paul 或 Daniel 或 Yakov 或名称为 null 的行。 =IN null 的内容将始终返回 null。所以你必须使用IS NULL

SELECT * 
FROM people
WHERE name IN('Paul', 'Daniel', 'Yakov')
OR name IS NULL

对于参数,以不同的方式发送 null。

DECLARE @params AS VARCHAR(20) = '''Paul', 'Daniel', 'Yakov'''
DECLARE @willNULLShow AS BIT = 1

DECLARE @Query AS VARCHAR(400)

SET @Query = 'SELECT * FROM people WHERE name IN '+ @params
IF @willNULLShow = 1
BEGIN
SET @Query = @Query + ' OR name IS NULL'
END

关于mysql - 如何在mysql中选择具有NULL值的列表 'IN'的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40955576/

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