【发布时间】:2020-12-02 08:32:40
【问题描述】:
鉴于以下英雄表:
firstName | lastName | idNumber | driverLicenseNumber
| | |
Captain | America | 1 | 10
Spider | Man | 2 | 20
我希望能够查询如下:
- 给定 ID_NUMBER、DRIVER_LICENSE_NUMBER(参数)
- 如果存在 idNumber=ID_NUMBER,则获取这些匹配项(并且仅获取它们)。
- 否则。如果存在 driverLicenseNumber=DRIVER_LICENSE_NUMBER 则获取这些匹配项
查询示例:
(ID_NUMBER=1 , DRIVER_LICENSE_NUMBER=20) => [美国队长]
(ID_NUMBER=4 , DRIVER_LICENSE_NUMBER=20) => [蜘蛛侠]
(ID_NUMBER=4 , DRIVER_LICENSE_NUMBER=40) => []
我的尝试:
我正在获取与其中一个字段匹配的所有行:
Select * from Heroes where idNumber=ID_NUMBER or driverLicenseNumber=DRIVER_LICENSE_NUMBER;
比在我的代码 (nodeJS) 中迭代结果。
我可以只使用 mysql 来做到这一点吗(最好没有很多连接和查询)
【问题讨论】:
标签: mysql sql subquery where-clause