SQLite – GLOB子句

SQLite – GLOB子句

SQLite GLOB操作符用于仅匹配文本模式使用通配符。如果搜索表达式可以匹配模式表达式,GLOB操作符将返回true,这是1。与LIKE不同,GLOB是大小写敏感的,它遵循语法的UNIX指定以下通配符。

  • The asterisk sign (*)
  • The question mark (?)

星号符号代表零个或多个数字或字符。的吗?代表一个数字或字符。

语法:

*? 基本语法如下:

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

您可以使用N个条件结合使用ANDOR操作符。这里XXXX可以任何数字或字符串值。

例子:

这里有一些例子显示WHERE part having different LIKE clause with '*' and '?' 操作符::

语句

描述

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'

发现任何值在一个五位数,开始23

让我们以一个真实的例子,确信COMPANY table有以下记录:

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 table,年龄从2:

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

下面是一个例子,这将显示所有记录从公司表地址将文本中的连字符(-):

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

posted @ 2014-01-02 11:57  Talbot3  阅读(968)  评论(0编辑  收藏  举报