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