簡體   English   中英

如何使用全文本搜索過濾多列

[英]How to filter on multiple columns with full text search

我有一個人表,其中包含名字,姓氏,城市和街道地址以及網絡gui,用戶可以在表中進行搜索。

假設該表包含4行,例如:

Eva, Andersson, Stockholm, Kungsgatan 3
Adam, Johansson, Kiruna, Malmgatan 33a
Eva, Berquist, Kiruna, Gruvgatan 22
Adam, Stenberg, Kiruna, Lappfogdegatan 2

如果用戶搜索“ Eva Andersson Stockholm”,那么他/她的住所只會在“ Eva,Andersson,Stockholm,Kungsgatan 3”上獲得成功,而不會在“ Eva,Berquist,Kiruna和Gruvgatan 22”上獲得成功。 但是,對亞當·基律納(Adam Kiruna)或僅僅對伊娃(Eva)的搜索應分別返回兩次點擊。

現在的過程如下:

ALTER PROCEDURE [dbo].[getPersons]
@Search nvarchar(50) 

AS
BEGIN

  SET NOCOUNT ON;
  DECLARE @SearchString varchar(100)

  SET @SearchString = REPLACE(@Search, ' ', '*" OR "')
  SET @SearchString = '"'+@SearchString+'*"'

  SELECT * FROM patients as p
  WHERE CONTAINS((Firstname, LasnName, City, Streetadress), @SearchString)
END

但是它返回包含任何單詞的所有行,因此對於搜索“ Eva Berquist Kiruna”,它將返回所有四行。

我應該如何編寫程序以獲得如上所述的正確結果?

這將是我的回答,請記住,在查詢服務器之前,您需要執行一些過程過程。 這里

Select * from Persons_Table where first_name = Eva AND Last_name = ....

這樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM