2013-07-23 52 views
1

所以我知道,你可以這樣做:使用LIKE「%此%」或「%是%」

SELECT * FROM my_table WHERE 
    (column1 LIKE "%this%" OR column1 LIKE "%that%") 

但有一個更快的方式做到這一點?

請注意,我的列是相同的。我真的必須爲每個條件輸入column1 LIKE嗎?

+0

如果你想過濾它 - 是的。 – tsells

+2

你可以擴展嗎? – Toiletduck

+0

每組(列如'%this%')是一個過濾條件。每當你想添加一個過濾條件 - 你需要指定要過濾的列和條件。 – tsells

回答

3

是你做的,對於一個通配符搜索。然而,如果你放棄了通配符和搜查只是thisthat,那麼你可以使用IN:如果您使用的SQL Server 2008+或Oracle

SELECT * FROM my_table 
WHERE column1 IN ('this', 'that') 

,您可以使用全文搜索的,做事情如:

SELECT * FROM my_table 
WHERE CONTAINS(column1, '*this*', '*that*') 
+0

我確實需要通配符。 CONTAINS示例中'*'的用途是什麼? – Toiletduck

+0

@Toiletduck'*'是CONTAINS全文搜索中的通配符('%'替換)。 – mattytommo

+0

好的,謝謝你。 – Toiletduck