我有带有列的数据库
ID 名字姓氏。我想得到各种人的身份证。因此,我正在编写如下查询。
Select ID from Database where FirstName='X' and LastName='x1'
Select ID from Database where FirstName='Y' and LastName='y1'
Select ID from Database where FirstName='Z' and LastName='z1'
我有什么办法可以优化这个查询。
我有带有列的数据库
ID 名字姓氏。我想得到各种人的身份证。因此,我正在编写如下查询。
Select ID from Database where FirstName='X' and LastName='x1'
Select ID from Database where FirstName='Y' and LastName='y1'
Select ID from Database where FirstName='Z' and LastName='z1'
我有什么办法可以优化这个查询。
您可以简单地将多个条件放在单个 where 子句中,所以为了简单起见就使用它们。
Select ID from Database
where (FirstName='X' and LastName='x1') OR
(FirstName='Y' and LastName='y1') OR
(FirstName='Z' and LastName='z1')
带有 NULL 条目 - 您可以再添加一个条件
OR (FirstName is NULL AND LastName is NULL)
如果您想为那些在您的表中不存在的名称获取行Database(不要为您的表使用此名称,顺便说一句):
select a.FirstName, a.LastName, d.id
from (
select 'X', 'X1' union all
select 'Y', 'Y1' union all
select 'Z', 'Z1'
) as a(FirstName, LastName)
left outer join Database as d on d.FirstName = a.FirstName and d.LastName = a.LastName