SQLite-GLOB句
SQLite GLOB演算子は、ワイルドカードを使用してテキスト値のみをパターンと照合するために使用されます。検索式をパターン式と一致させることができる場合、GLOB演算子はtrue(1)を返します。LIKE演算子とは異なり、GLOBは大文字と小文字を区別し、UNIXの構文に従って次のワイルドカードを指定します。
- アスタリスク記号(*)
- 疑問符(?)
アスタリスク記号(*)は、ゼロまたは複数の数字または文字を表します。疑問符(?)は、単一の数字または文字を表します。
構文
以下はの基本的な構文です * そして ?。
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'
組み合わせることができます NANDまたはOR演算子を使用した条件の数。ここで、XXXXは任意の数値または文字列値です。
例
次の表に、「*」と「?」が付いた異なるLIKE句を持つWHERE部分を示すいくつかの例を示します。演算子。
シニア番号 | ステートメントと説明 |
---|---|
1 | WHERE SALARY GLOB '200*' 200で始まる値を検索します |
2 | WHERE SALARY GLOB '*200*' 任意の位置に200がある値を検索します |
3 | WHERE SALARY GLOB '?00*' 2番目と3番目の位置に00がある値を検索します |
4 | WHERE SALARY GLOB '2??' 2で始まり、長さが3文字以上の値を検索します |
5 | WHERE SALARY GLOB '*2' 2で終わる値を検索します |
6 | WHERE SALARY GLOB '?2*3' 2番目の位置に2があり、3で終わる値を検索します |
7 | WHERE SALARY GLOB '2???3' 2で始まり3で終わる5桁の数字の値を検索します |
実際の例を見てみましょう。次のレコードを持つCOMPANYテーブルについて考えてみましょう。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
以下は、AGEが2で始まるCOMPANYテーブルのすべてのレコードを表示する例です。
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';
これにより、次の結果が得られます。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
以下は例で、ADDRESSのテキスト内にハイフン(-)が含まれるCOMPANYテーブルのすべてのレコードを表示します-
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
これにより、次の結果が得られます。
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0