一起使用我需要在SQL Server中創建一個查詢,其中搜索條件將根據用戶輸入包括/排除表。將SQL LIKE運算符與%%
說我有兩個表,在TABLE_A
TABLE_A
和TABLE_B
與KEYCOLUMN_A
列和COLUMN_A
和列FKCOLUMN_B
和TABLE_B
COLUMN_B
。
像一個查詢:
SELECT TABLE_A.* FROM TABLE_A, TABLE_B WHERE TABLE_A.KEYCOLUMN_A = TABLE_B.FKCOLUMN_B
AND TABLE_A.COLUMN_A LIKE '%SEARCH%' AND TABLE_B.COLUMN_B LIKE '%SEARCH2%'
現在,如果用戶沒有輸入SEARCH2
,我並不需要搜索TABLE_B
。但這意味着IF ELSE
條款。隨着查詢中「可選」表的數量增加,排列和組合也會增加,並且會有許多IF
和ELSE
語句。
相反,我決定保持原樣。所以,如果SEARCH2
是空的,查詢將有效地成爲:
SELECT * FROM TABLE_A, TABLE_B WHERE TABLE_A.KEYCOLUMN_A = TABLE_B.FKCOLUMN_B
AND TABLE_A.COLUMN_A LIKE '%SEARCH%' AND TABLE_B.COLUMN_B LIKE '% %'
的SQL優化器能夠認識到LIKE %%
是去掉了條件本身一樣好?
有第二代碼樣品中的錯字以搜索指定的模式。 %和%之間不應該有空格。 SELECT * FROM TABLE_A,TABLE_B WHERE TABLE_A.KEYCOLUMN_A = TABLE_B.FKCOLUMN_BAND TABLE_A.COLUMN_A LIKE'%SEARCH%'AND TABLE_B.COLUMN_B LIKE'%%' – devanalyst 2009-09-25 11:49:48
使用「sql-server」標籤,如其他民間的數千... – gbn 2009-09-25 15:29:16
@deanalyst:你不能編輯問題來解決這個錯誤嗎? – 2009-09-25 15:31:10