我正在使用SQL Server 2008 Enterprise。現在我有兩種模式來實現相同的功能(查看zoo1或zoo2或zoo3列是否包含一些文本,在模式1中,我合併了zoo1,zoo2和zoo3的內容以形成一個名爲zoo的新列),我認爲第一個模式總是比我的實驗更好的表現(我做了一些實驗)。但我不確定我是否正確,模式1的表現總是更好的內部原因是什麼?SQL Server like statement issue
模式1:
Select foo, goo from tablefoo where zoo like LIKE '%'[email protected]+'%'
模式2(動物園是我合併柱zoo1,zoo2和zoo3的內容,以生成一列):
Select foo, goo from tablefoo where (zoo1 like LIKE '%'[email protected]+'%') OR (zoo2 like LIKE '%'[email protected]+'%') or (zoo3 like LIKE '%'[email protected]+'%')
由於事先 喬治
非常有趣的問題。 – 2010-09-09 07:31:14
你如何構建組合列「動物園」?你是否在使用視圖,如果是,它是否被索引?您是否使用計算列,如果是,它是否持續?順便說一句,您的查詢可能容易受到SQL注入攻擊。 – 2010-09-09 07:40:32
本週我已經回答了類似的問題http://stackoverflow.com/questions/3649673/what-indices-should-be-created-to-optimize-sql-query-with-multiple-or-conditions/3656415 #3656415 SQL索引幾乎落在查詢或a或b或c它更好做工會和單獨的查詢 – u07ch 2010-09-09 07:45:39