SQL 中的自定义搜索,按列排名

Custom search in SQL with rank by columns

我想为存储在 SQL 服务器中的用户实现智能搜索表单。我想用于搜索的列显示在下面的屏幕截图中。

但有些列的优先级更高。例如,如果电子邮件或 phone 与数据库中的项目匹配,它将比例如按街道和城市创建的项目具有更高的排名。

我什至不知道从哪里开始。

我只需要一些提示来学习什么。

我的应用程序 运行 在 MVC 5 下,对于数据库,我正在使用 SQL 服务器。

感谢您的帮助。

所以按排序顺序实施您的优先级算法:

...
set @email = NullIf(@email, '')
set @city_id = NullIf(@city_id, 0)

SELECT
...
WHERE (@email is NULL or t.email = @email)
  AND (@city_id is NULL or t.city_id = @city_id)
  AND ...
ORDER BY
  CASE
    WHEN @email = u.email THEN 1
    WHEN @city_id = t.city_id THEN 2
    ...
  END
OPTION(RECOMPILE)

recompile - 针对不同条件优化搜索(执行计划)。