Latest web development tutorials

SQLiteのグロブ句

SQLiteのは、GLOB演算子はワイルドカードパターンを指定したテキスト値を一致させるために使用されます。 検索式および発現パターンマッチングした場合、GLOB演算子は1である、(真)がtrueを返します。 そして、LIKE演算子はGLOBは、UNIXの構文を次の次のワイルドカード、のために、大文字と小文字が区別され、異なっています。

  • アスタリスク(*)

  • 疑問符(?)

アスタリスク(*)は、ゼロ、1つ以上の数字または文字を表します。 疑問符(?)一桁または文字を表します。 これらの記号を組み合わせて使用​​することができます。

文法

?*そして、次のように基本的な構文は次のとおりです。

TABLE_NAME FROM SELECT
WHERE列のGLOB「XXXX * '

または 

TABLE_NAME FROM SELECT
WHERE列のGLOB '* XXXX *'

または

TABLE_NAME FROM SELECT
WHERE列GLOB「XXXX?」

または

TABLE_NAME FROM SELECT
WHERE列のGLOB '?XXXX」

または

TABLE_NAME FROM SELECT
WHERE列のGLOB '?XXXX?」

または

TABLE_NAME FROM SELECT
WHERE列のGLOB「????」

あなたが条件のN個を結合し、ANDやOR演算子を使用することができます。 ここで、XXXXは数値または文字列値を指定できます。

次の例では、 '*'と事業者と別の場所グロブ句を実証します '?':

语句描述
WHERE SALARY GLOB '200*'查找以 200 开头的任意值
WHERE SALARY GLOB '*200*'查找任意位置包含 200 的任意值
WHERE SALARY GLOB '?00*'查找第二位和第三位为 00 的任意值
WHERE SALARY GLOB '2??'查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY GLOB '*2'查找以 2 结尾的任意值
WHERE SALARY GLOB '?2*3'查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY GLOB '2???3'查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

それでは、実際の例を見てみましょう、と仮定するCOMPANYテーブルには、次のレコードを持っています。

IDのNAME AGEアドレスSALARY
---------- ---------- ---------- ---------- ----------
1ポール32カリフォルニア20000.0
2アレン25テキサス15000.0
3テディ23ノルウェー20000.0
4マーク25リッチモンド65000.0
5デイビッド27テキサス85000.0
6金22サウスホール45000.0
7ジェームス・24ヒューストン10000.0

ここでは一例であり、それはCOMPANYテーブルAGE 2で始まるすべてのレコードを示しています。

SQLiteは> AGE GLOB '2 *' COMPANY SELECT * FROM。

これにより、以下の結果が得られます。

IDのNAME AGEアドレスSALARY
---------- ---------- ---------- ---------- ----------
2アレン25テキサス15000.0
3テディ23ノルウェー20000.0
4マーク25リッチモンド65000.0
5デイビッド27テキサス85000.0
6金22サウスホール45000.0
7ジェームス・24ヒューストン10000.0

( - )ここに例があり、それはテキストの会社住所のテーブルには、ハイフンが含まれ表示されたすべてのレコードを:

COMPANY ADDRESSグロブSELECT * FROMのsqlite> '*  -  *';

これにより、以下の結果が得られます。

IDのNAME AGEアドレスSALARY
---------- ---------- ---------- ---------- ----------
4マーク25リッチモンド65000.0
6金22サウスホール45000.0