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

你可能感兴趣的:(sqlite)