我的要求是要能夠搜索imran
在Simran
,Simrankaur
等全文搜索沒有找到我的條目
我使用下面的查詢:
select Name, Len(Name)
from Demo
where Contains(Name, '"*imran*"')
我Demo
表有Name
列以下條目Simran
,Simrankaur
,SimranKaurKhurana
但查詢返回nil。
我在哪裏做錯了?
我的要求是要能夠搜索imran
在Simran
,Simrankaur
等全文搜索沒有找到我的條目
我使用下面的查詢:
select Name, Len(Name)
from Demo
where Contains(Name, '"*imran*"')
我Demo
表有Name
列以下條目Simran
,Simrankaur
,SimranKaurKhurana
但查詢返回nil。
我在哪裏做錯了?
聽起來你想要like
:
select Name, Len(Name)
from Demo
where Name like '%imran%';
即使使用contains,也不能在字符串的開頭使用通配符。
嘗試,如果你的數據庫是不區分大小寫
select Name, Len(Name) from Demo
where Name like '%imran%'
請注意,根據數據庫的設置,這可能是大小寫敏感的下面, 所以這可能是更加一致:
select Name, Len(Name) from Demo
where LOWER(Name) like '%imran%'
'Contains'是SQL服務器的本地函數 – SoulTrain 2015-02-05 16:59:21
哦,是嗎?這回答了我的問題:)謝謝。 – Simran 2015-02-05 17:02:55
然而,只是想知道,因爲它被稱爲全文搜索,真的沒有辦法在CONTAINS中使用這種類型的東西嗎? – Simran 2015-02-05 17:06:35
@Simran。 。 。根據文檔(https://msdn.microsoft.com/en-us/library/ms187787.aspx),您可以搜索前綴而不是任意子字符串。 – 2015-02-05 21:47:46