說員工有三列 名字,姓氏和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