鍍金池/ 教程/ 數(shù)據(jù)庫/ SQLite Glob 子句
SQLite Having 子句
SQLite 運算符
SQLite 注入
SQLite Delete 語句
SQLite – Python
SQLite 數(shù)據(jù)類型
SQLite 簡介
SQLite 創(chuàng)建數(shù)據(jù)庫
SQLite Vacuum
SQLite Group By
SQLite 日期 & 時間
SQLite AND/OR 運算符
SQLite 刪除表
SQLite Distinct
SQLite Alter 命令
SQLite PRAGMA
SQLite 約束
SQLite 創(chuàng)建表
SQLite Like 子句
SQLite Limit 子句
SQLite Autoincrement
SQLite 子查詢
SQLite – C/C++
SQLite – PHP
SQLite 命令
SQLite Order By
SQLite Select 語句
SQLite Unions 子句
SQLite – Perl
SQLite – Java
SQLite 別名
SQLite 常用函數(shù)
SQLite Explain(解釋)
SQLite NULL 值
SQLite Glob 子句
SQLite 表達(dá)式
SQLite 視圖
SQLite Where 子句
SQLite Truncate Table
SQLite 索引
SQLite Insert 語句
SQLite 安裝
SQLite Indexed By
SQLite 分離數(shù)據(jù)庫
SQLite 觸發(fā)器
SQLite 語法
SQLite Joins
SQLite Update 語句
SQLite 附加數(shù)據(jù)庫
SQLite 事務(wù)

SQLite Glob 子句

SQLite 的 GLOB 運算符是用來匹配通配符指定模式的文本值。如果搜索表達(dá)式與模式表達(dá)式匹配,GLOB 運算符將返回真(true),也就是 1。與 LIKE 運算符不同的是,GLOB 是大小寫敏感的,對于下面的通配符,它遵循 UNIX 的語法。

  • 星號 (*)
  • 問號 (?)

星號(*)代表零個、一個或多個數(shù)字或字符。問號(?)代表一個單一的數(shù)字或字符。這些符號可以被組合使用。

語法

  • 和 ? 的基本語法如下:
    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 運算符來結(jié)合 N 個數(shù)量的條件。在這里,XXXX 可以是任何數(shù)字或字符串值。

實例

下面一些實例演示了 帶有 '*' 和 '?' 運算符的 GLOB 子句不同的地方:

語句描述
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 結(jié)尾的任意值
WHERE SALARY GLOB '?23'查找第二位為 2,且以 3 結(jié)尾的任意值
WHERE SALARY GLOB '2???3'查找長度為 5 位數(shù),且以 2 開頭以 3 結(jié)尾的任意值

讓我們舉一個實際的例子,假設(shè) 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

下面是一個實例,它顯示 COMPANY 表中 AGE 以 2 開頭的所有記錄:

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

這將產(chǎn)生以下結(jié)果:

    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

下面是一個實例,它顯示 COMPANY 表中 ADDRESS 文本里包含一個連字符(-)的所有記錄:

    sqlite> SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';

這將產(chǎn)生以下結(jié)果:

    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    4           Mark        25          Rich-Mond   65000.0
    6           Kim         22          South-Hall  45000.0
上一篇:SQLite 約束下一篇:SQLite 觸發(fā)器