Sqlite-glob-clause

提供:Dev Guides
移動先:案内検索

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 '????'

ANDまたはOR演算子を使用して、 N 個の条件を組み合わせることができます。 ここで、XXXXは任意の数値または文字列値です。

次の表に、「*」と「?」の異なるLIKE句を持つWHERE部分を示すいくつかの例を示します。演算子。

Sr.No. Statement & Description
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