0
我正在使用SP來過濾基於位置和名稱的數據。我是新的索引部分。我寫了一個像下面這樣的SP來獲取表中的數據像運營商在SQL中使用索引
create procedure [dbo].[Seach_University]
(
@Search varchar(100),
@SerLocation varchar(100)
)
as begin
declare @x varchar(100) = '"'[email protected]+'*"',
@y varchar(100) = '"'[email protected] +'*"'
select * from tbl_Groups where contains(Group_Name ,@x) and contains(Location,@y)
end
這段代碼在我發送到關鍵字時工作的很好。問題來了,當我只發送一個值(要麼@SerLocation或@搜索)數據不會到來,即當null爲空時。
任何一個可以幫助我,在這樣的方式,即使空值推移,它應該像工作,下面的代碼
select * from tbl_Groups where Group_Name like '%'[email protected]+'%' and Location like '%'[email protected]+'%'
索引通常只適用於LIKE條件*錨定*到開頭,如「FOO%」。一旦你添加了''%FOO'',那麼這個簡單的索引就不存在了。 – user2864740
所以我不能像這個搜索使用索引?或者我不得不喜歡下面的答案@Nihat – Srujan0228
這是正確的,Group_name索引將不會被使用(想象一下有人告訴你從電話簿中找到名字中包含'al'的人列表,你將不能使用字母順序 - 換句話說,電話本索引,你將不得不掃描一切,索引將以類似的方式工作)你可以使用下面描述的任何一個。 – Nihat