我使用需要足夠強大的視圖創建搜索解決方案,以滿足客戶需求。例如:
CREATE TABLE tblMyData
(
MyId bigint identity(1,1),
Col01 varchar(50),
Col02 varchar(50),
Col03 varchar(50)
)
CREATE VIEW viewMySearchData
as
SELECT
MyId,
ISNULL(Col01,'') + ' ' +
ISNULL(Col02,'') + ' ' +
ISNULL(Col03,'') + ' ' AS SearchData
FROM tblMyData
SELECT
t1.MyId,
t1.Col01,
t1.Col02,
t1.Col03
FROM tblMyData t1
INNER JOIN viewMySearchData t2
ON t1.MyId = t2.MyId
WHERE t2.SearchData like '%search string%'
如果他們再決定將列添加到tblMyData,他們希望搜索,然後加入到「AS SearchData」部分中的新colums修改viewMysearchData那些列。
如果他們決定在搜索中有兩列很多,那麼只需通過從「AS SearchData」部分刪除不需要的列來修改viewMySearchData。
嗯,我在那裏非常有意識地選擇了「超弦」這個詞。我理解一個子串查詢是爲了查找列中包含一個包含目標字符串的字符串的行。 – Benno 2009-10-21 23:44:36
你可以說超級字符串中的字符長度和/或範圍是否存在「問題域」限制? – 2009-10-21 23:54:21
...以及'列'字段中子字符串的可能長度可能也是如此。 – 2009-10-21 23:55:33