[英]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.