你好呀
想象我有一张这样的 table

Id | Name       | City
1  | Tom york   | xx
2  | Jim york   | xy
3  | tony       | new York
4  | Sam york   | xz

我想搜索名称为“%york%”或城市为“%york%”的记录
但是我想更优先考虑名称,所以我的 rresult 将是这样的:
Id | Name       | City
1  | Tom york   | xx
2  | Jim york   | xy
4  | Sam york   | xz
3  | tony       | new York

也就是说,首先是名字像“%york%”的记录,然后是城市像“%york%”的记录

构建此查询的最佳方法是什么?我可以在一个查询中完成吗?
sql 或 linq to sql 中的答案会很棒

tks

最佳答案

我想你的意思是“但我想给名称更多的优先级”是你想首先在 "a" 中获取带有 Name 的实体,然后是其他实体(在 "a" 中带有 City )。相应的 Linq-to-SQL 查询将是:

Entities
.Where(e => e.Name.Contains("a") || e.City.Contains("a"))
.OrderByDescending(e => e.Name.Contains("a"));

关于具有属性优先级的sql查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3816646/

10-16 09:06