English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite GLOB 子句

SQLite GLOB演算子は、ワイルドカードを使用してテキスト値とパターンをマッチングするために使用されます。検索表現がパターン表現とマッチングできる場合、GLOB演算子はtrueを返し、即为1。LIKE演算子とは異なり、GLOBは大文字小文字を区別し、UNIXの文法に従って以下のワイルドカードを指定します。

  • 星号(*)

  • 問号(?)

星号(*)は、0個または複数の数字または文字を表します。問号(?)は、1つの数字または文字を表します。

文法

以下は基本的な文法です*?

*'
または 
SELECT FROM table_name WHERE column GLOB '',*XXXX*'
または  
SELECT FROM table_name WHERE column GLOB 'XXXX?'
または  
SELECT FROM table_name WHERE column GLOB '?XXXX'
または  
SELECT FROM table_name WHERE column GLOB '?XXXX?'
または  
SELECT FROM table_name WHERE column GLOB '????'

ANDやOR演算子を使用して、複数の条件を組み合わせることができます。ここでは、XXXXはどんな数字や文字列の値でもできます。

オンラインサンプル

以下のテーブルには、WHERE部分のLIKE子句に異なる*'と'?'演算子。

番号宣言と説明
1

WHERE SALARY GLOB '200*'

検索して200で始まるいかなる値も表示します

2

WHERE SALARY GLOB '*200*'

検索していかなる位置に00を持ついかなる値も表示します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           ポール        32          カリフォルニア  20000.0
2           アレン       25          テキサス       15000.0
3           テディ       23          ノルウェイ      20000.0
4           Mark        25          Rich-Mond   65000.0
5           デイビッド       27          テキサス       85000.0
6           Kim         22          South-Hall  45000.0
7           ジェームズ       24          ヒューストン     10000.0

以下にサンプルがあります。このサンプルは、AGEで2開頭。

sqlite> SELECT * FROM COMPANY WHERE AGE  GLOB '2*';

これは以下の結果を生成します。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           アレン       25          テキサス       15000.0
3           テディ       23          ノルウェイ      20000.0
4           Mark        25          Rich-Mond   65000.0
5           デイビッド       27          テキサス       85000.0
6           Kim         22          South-Hall  45000.0
7           ジェームズ       24          ヒューストン     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