mysql - MYSQL查询处理一对值中的空值
问题描述
假设我们有以下数据库:
First_Id Second_Id Name
null 1 Durant
null 1 Kobe
1 2 Lebron
2 2 Dwight
1 3 Dirk
我们希望以两列组成一些特定对的方式提取行,例如:
(1,2),(1,3)
所以答案等于:
First_Id Second_Id Name
1 2 Lebron
1 3 Dirk
这可以使用以下查询:
SELECT *
FROM PLAYERS
WHERE (First_Id, Second_Id) IN (VALUES (1,2), (1,3))
我想做的是找到那些行,First_Id
我null
该怎么做?
SELECT *
FROM PLAYERS
WHERE (First_Id, Second_Id) IN (VALUES (null,1),(1,2), (1,3))
所需的输出是:
First_Id Second_Id Name
null 1 Durant
null 1 Kobe
1 2 Lebron
1 3 Dirk
解决方案
为什么不直接使用相等和逻辑运算符。在特定情况下,它比您尝试做的更简单:
SELECT *
FROM PLAYERS
WHERE (First_Id is null and Second_Id = 1)
OR (First_Id = 1 and Second_Id = 2)
OR (First_Id = 1 and Second_Id = 3)
推荐阅读
- python - 无法在 Docker 运行中运行 python 文件 - docker:无效的引用格式和 docker:来自守护程序的错误响应
- javascript - JS CLI RPS 游戏问题
- python - TensorFlow 对象检测,检测对象的性能很差
- cmake - 检查字符串是否不是保留字?
- vue.js - 如何在微服务架构中添加用户界面设计
- javascript - c#脚本中的Unity jslib导入不起作用?
- python - 是否需要采取某些措施来防止 Python 中出现“无法加载 OpenGL 库”错误?
- java - POST InputStream 与 RestTemplate 和处理背压
- webassembly - 为什么 AssemblyScript 中的 store() 不在指定指针处存储数据?
- google-app-engine - 为什么我的 Java appengine 应用程序在 5 年后没有任何问题出现“500 服务器错误”?