0

複数の異なるものを検索する SQL クエリを作成しようとしています。これを実現するには、like コマンドが最適な方法だと思います。

クエリの行は次のとおりです。

where *field* like 'AB%'AB....で始まるテーブル内のすべてのインスタンスをリストします。

エラーメッセージが表示されても複数のインスタンスを追加しようとすると、次のようなことをしたい:

where *field* like ('AB%','CD%','EF%')

だから私は提供したテキストのリストで始まる特定のエントリのフィールドを取得します

誰かがこれを手伝ってくれませんか?

4

5 に答える 5

5

あなたが欲しいOR

WHERE field LIKE 'AB%' 
   OR field LIKE 'CD%'
   OR field LIKE 'EF%'

他のWHERE句の基準を使用している場合は、括弧を使用してOR句を囲む必要があります。

それが役に立てば幸い...

編集:

コメントの後で、正規表現、特に句でREGEXP_LIKEを使用してみることができますWHERE

(未テスト)の線に沿った何か:

SELECT *
  FROM table
 WHERE regexp_like(field, '^(AB|CD|EF).*$')
于 2012-07-30T13:21:12.060 に答える
1

WHERE *field* LIKE 'AB%' OR *field* LIKE 'CD%' OR *field* LIKE 'EF%'

于 2012-07-30T13:19:59.270 に答える
0

Oracle を使用している場合は、次のように記述できます。

where regexp_like(t1, '^AB|^CD|^EF')

于 2012-07-30T13:45:31.273 に答える
0

instr 関数を使用できます。文字列の最初の位置に必要な部分文字列が見つかった場合は、1 が返されます。

where instr(field,'AB') = 1
OR instr(field,'CD') = 1
OR instr(field,'ED') = 1
于 2012-07-31T02:47:39.213 に答える
-1

単一の文字列でそれを行いたい場合は、REGEXP を使用してみてください。

WHERE *field* REGEXP 'AB(.*)|CD(.*)|EF(.*)'
于 2012-07-30T13:45:01.790 に答える