多字段模糊查询sql like %% 优化与区别


多字段模糊查询sql like %% 优化与区别


http://anforen.5d6d.com/


SELECT *

  FROM [KLims].[dbo].[Task] 

where  ClientCompany like '%a%' or [Address] like '%a%'


SELECT *

  FROM [KLims].[dbo].[Task] 

where  ClientCompany + [Address] like '%a%'


但当其中一字段为null时,用第二种会找不到数据。

http://four-corner.appspot.com/

 

因为当某一字段为null时,拼接的字段整体都为null,要让第二种办法可以使用,可以这样写,将为null的字段,替换为'';


SELECT *

  FROM [KLims].[dbo].[Task] 

where  isnull(ClientCompany,'') + isnull([Address],'') like '%a%'

 


这样既可正常执行,又高效。 

posted on 2010-05-27 14:00  公众号73只蚂蚁  阅读(1654)  评论(2编辑  收藏  举报

导航