335

SQL Server-Queryを組み合わせて使用​​することは可能LIKEですか?IN

したがって、このクエリは

SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')

これらの可能な一致のいずれかを検索します。

Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness

等...

4

6 に答える 6

350

事実上、IN ステートメントは一連の OR ステートメントを作成します...

SELECT * FROM table WHERE column IN (1, 2, 3)

効果的に

SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3

そして悲しいことに、それが LIKE ステートメントで取らなければならないルートです

SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
于 2009-12-08T07:55:27.257 に答える
124

もう1つのオプションは、このようなものを使用することです

SELECT  * 
FROM    table t INNER JOIN
        (
            SELECT  'Text%' Col
            UNION SELECT 'Link%'
            UNION SELECT 'Hello%'
            UNION SELECT '%World%'
        ) List ON t.COLUMN LIKE List.Col
于 2009-12-08T08:07:04.227 に答える
14

いいえ、ステートメントORを組み合わせるために使用する必要があります。LIKE

SELECT 
   * 
FROM 
   table
WHERE 
   column LIKE 'Text%' OR 
   column LIKE 'Link%' OR 
   column LIKE 'Hello%' OR
   column LIKE '%World%'

全文検索を見たことがありますか?

于 2009-12-08T07:55:20.487 に答える
10

OR で接続された複数の LIKE 句が必要です。

SELECT * FROM table WHERE 
column LIKE 'Text%' OR 
column LIKE 'Link%' OR 
column LIKE 'Hello%' OR 
column LIKE '%World%' OR 
于 2009-12-08T07:53:32.843 に答える
5

いいえ、MSSQL はそのようなクエリを許可しません。col LIKE '...' OR col LIKE '...'などを利用する必要があります。

于 2009-12-08T07:54:35.623 に答える