我想知道在sql中使用动态值进行查询的最佳实践是什么,假设我有一个值(nvarchar(Max))
值:"912345678"
select * from AllData
where Number like '%912345678%'
值:"Michael"
select * from AllData
where Name like '%Michael%'
取值:“10号街”
select * from AllData
where Address like '%Street number 10%'
这种方法有点慢,因为搜索一个有9位数字的数字会更快,没有这样的%
select * from AllData
where Number like '912345678'
我使用EDMX与C#中的外部数据库建立连接,如下所示:
var Result = EDMXEntity.Entities.Where(x =>
(SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Name.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Number.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Address.ToString().ToLower()) > 0)).Take(50).ToList();
如何提高性能?
https://stackoverflow.com/questions/30936825
复制相似问题