所以我知道,你可以這樣做:使用LIKE「%此%」或「%是%」
SELECT * FROM my_table WHERE
(column1 LIKE "%this%" OR column1 LIKE "%that%")
但有一個更快的方式做到這一點?
請注意,我的列是相同的。我真的必須爲每個條件輸入column1 LIKE
嗎?
所以我知道,你可以這樣做:使用LIKE「%此%」或「%是%」
SELECT * FROM my_table WHERE
(column1 LIKE "%this%" OR column1 LIKE "%that%")
但有一個更快的方式做到這一點?
請注意,我的列是相同的。我真的必須爲每個條件輸入column1 LIKE
嗎?
是你做的,對於一個通配符搜索。然而,如果你放棄了通配符和搜查只是this
和that
,那麼你可以使用IN
:如果您使用的SQL Server 2008+或Oracle
SELECT * FROM my_table
WHERE column1 IN ('this', 'that')
,您可以使用全文搜索的,做事情如:
SELECT * FROM my_table
WHERE CONTAINS(column1, '*this*', '*that*')
我確實需要通配符。 CONTAINS示例中'*'的用途是什麼? – Toiletduck
@Toiletduck'*'是CONTAINS全文搜索中的通配符('%'替換)。 – mattytommo
好的,謝謝你。 – Toiletduck
我不是你正在使用肯定WHA環境,但它可能是值得一試:
這是一個SQL服務器。 – Toiletduck
嘗試使用WHERE CONTAINS(column1,'%this%*「或」%that%*「或」%yourmom%*「') – Elias
表達式後星號的用途是什麼? – Toiletduck
如果你想過濾它 - 是的。 – tsells
你可以擴展嗎? – Toiletduck
每組(列如'%this%')是一個過濾條件。每當你想添加一個過濾條件 - 你需要指定要過濾的列和條件。 – tsells