1

所以我知道你可以这样做:

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

但是有没有更快的方法来做到这一点?

请注意,我的列是相同的。我真的必须column1 LIKE为每个条件输入吗?

4

2 回答 2

3

是的,您可以使用通配符搜索。但是,如果您删除了通配符并仅搜索thisand that,那么您可以使用IN

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

如果您使用的是 SQL Server 2008+ 或 Oracle,则可以使用全文搜索,执行以下操作:

SELECT * FROM my_table 
WHERE CONTAINS(column1, '*this*', '*that*')
于 2013-07-23T18:38:30.573 回答
1

我不确定您使用的是什么环境,但可能值得一试:

SQL中是否有“LIKE”和“IN”的组合?

于 2013-07-23T18:36:13.917 回答