开发学院

您的位置:首页>教程>正文

教程正文

SQLite LIKE 命令

SQLite LIKE 命令

  LIKE 用于使用通配符将文本值与模式匹配。如果搜索表达式可以与模式表达式匹配,LIKE运算符将返回true,即1。有两个通配符与LIKE运算符结合使用:%符号和_符号;

  百分号表示零个、一个或多个数字或字符。下划线代表单个数字或字符。这些符号可以组合使用。

语法

  下面是LIKE结合%和 _使用的基础语法

SELECT FROM table_name
WHERE column LIKE 'XXXX%'
或者
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
或者
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
或者
SELECT FROM table_name
WHERE column LIKE '_XXXX'
或者
SELECT FROM table_name
WHERE column LIKE '_XXXX_'

  可以使用AND或OR运算符组合N个条件。这里,XXXX可以是任何数字或字符串值。

例子

  下表列出了一些示例,显示带有“%”和“_”运算符的LIKE子句不同的部分。

语句解释
WHERE SALARY LIKE '200%'查找以200开头的记录
WHERE SALARY LIKE '%200%' 查找任意位置包含200的记录
WHERE SALARY LIKE '_00%'  查找第二个和第三个位置中具有00的任何值
WHERE SALARY LIKE '2_%_%' 查找以2开头且长度至少为3个字符的任何值
WHERE SALARY LIKE '%2'查找包含以2结尾的记录
WHERE SALARY LIKE '_2%3' 查找包含以2开头、以3结尾的任意长度的记录
WHERE SALARY LIKE '2___3' 查找以2开头、以3结尾的五位的记录

  让我们做一些实际的例子, 假设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表中年龄以2开始的所有记录

sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '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

  下面的例子,它将显示COMPANY表中ADDRESS字段中有一个连字符(-)的所有记录。

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%-%';

  这将产生以下结果。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0