gpt4 book ai didi

sql - 如何查询 SQL Server 2008 数据库的名字和姓氏以及按相关性排序?

转载 作者:行者123 更新时间:2023-12-02 23:11:19 28 4
gpt4 key购买 nike

基本上我有一个这样的表:

CREATE TABLE Person(
PersonID int IDENTITY(1,1) NOT NULL,
FirstName nvarchar(512) NOT NULL,
LastName nvarchar(512) NULL
)

我需要根据这样的用户查询找到前 n 个结果:

"Joh Smi"

以下查询返回我需要的结果(我认为)。只是不按照相关顺序。

SELECT
PersonID, FirstName, LastName
FROM
Person
WHERE
FirstName LIKE 'Joh%' OR
LastName LIKE 'Joh%' OR
FirstName LIKE 'Smi%' OR
LastName LIKE 'Smi%'

如果数据库中存在以下名称,并且我们的用户查询是“Joh Smi”,则名称应按以下顺序(或类似顺序)显示

  1. 约翰·史密斯
  2. 约翰尼·史密斯
  3. 约翰·雅各布
  4. 大卫·史密森尼
  5. 丹尼尔·约翰逊

我希望它能像 Facebook 的自动完成好友搜索一样工作。

那么,如何返回 SQL Server 2008 中前 n 个最相关的行?

最佳答案

我建议实现全文搜索 (FTS) 有两个原因:

  1. 简化查询(不需要 OR,否则性能会很差)
  2. 利用 FTS 排名功能 - 请参阅 this article

关于sql - 如何查询 SQL Server 2008 数据库的名字和姓氏以及按相关性排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383207/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com