说员工有三列 名字,姓氏和ID。更快的方法来做到这一点选择查询
该查询应首先搜索名字中的名字,仅当其未找到时搜索姓氏。
so select * from Employee where FirstName ='test%'或lastname ='test'%'。不会'工作。
下面的查询将起作用。
select FirstName, LastName, ID
from EMPLOYEE
WHERE
LastName = 'Test%'
AND
(COUNT(SELECT FirstName, LastName, ID FROM EMPLOYEE WHERE FirstName = 'Test%')=0)
OR
SELECT FirstName, LastName, ID FROM EMPLOYEE WHERE FirstName = 'Test%'
我需要将此映射回NHibernate,有没有更快的有效的方式来做到这一点,而不是做两个数据库调用?
我真的不认为你需要担心写两个数据库调用的开销。 – Juliet 2009-09-01 19:57:11
只要FirstName和LastName都是索引的,几乎任何非愚蠢的查询都会非常有效(除非您的数据库拥有数百万条记录)。 – Brian 2009-09-01 19:57:16
“so select * from Employee where FirstName ='test%'or Lastname ='test'%'。wont'work。” 如果您在FirstName匹配时始终需要记录(不管LastName是什么),那么这确实是查询。详情请参阅我的回答。 – 2009-09-02 01:07:02