建置sql server table時遇到搜尋的欄位含有dash或hyphen (-)字串時,無法返回正確的搜尋結果,必須使用'like'替代'='完整字串搜尋才能返回正確結果。
同樣的搜尋卻有些table可以使用'='完整字串搜尋含有dash或hyphen (-)字串並返回正確結果。
我的欄位字串格式為
ABCDEF-010203
在確認table的design後發現,在Full-text Specification中Language的設定有差異,可以搜尋dash/hyphen的為空白,不可搜尋dash/hyphen的為Neutral只能使用like搜尋。我猜測可能是這個Language設定可以調整搜尋遇到dash/hyphen的結果。想請問怎麼把dash/hyphen改為空白?謝謝
以下是幾篇微軟官方網站關於這個問題的描述:
https://docs.microsoft.com/en-US/troubleshoot/sql/admin/dashes-ignored-search-full-text-msidxs-queries
可以嘗試看看用charindex
做Contains比對
CHARINDEX('特定目標子字串','完整字串欄位') >= 1
https://coolmandiary.blogspot.com/2021/06/t-sql17startwithcontainscharindex.html
REPLACE這個可以用來做字元取代
https://coolmandiary.blogspot.com/2021/03/t-sql13trim-solutionreplacertrimltrim.html
或者檢查一下定序
https://coolmandiary.blogspot.com/2021/12/t-sql27where.html