专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 MySQL通配符的介绍

MySQL通配符的介绍

更新时间:2022-07-25 10:02:51 来源:动力节点 浏览1498次

MySQL教程中会学到通配符,MySQL中的通配符是允许我们非常轻松快速地从表中搜索复杂数据的字符。它通过替换一个或多个字符来处理字符串,并在将字符串匹配到表中后产生结果。

在正常比较中,我们使用两个字符串,其中两个字符串的每个字符都应该在给出输出之前完全匹配。在通配符中,它们提供了在字符串中使用单个字符或一组字符的灵活性,这对于另一个字符串是可以接受的。

MySQL将通配符与LIKE或NOT LIKE比较运算符结合使用。LIKE 运算符与WHERE 子句一起用于查找列中指定模式的结果。

通配符的优点

MySQL 具有以下通配符的优点:

它提高了应用程序的性能。

它节省了从表中过滤记录的时间。

它使复杂查询的使用变得非常容易和快速。

它使我们能够将强大的搜索引擎开发到大型数据驱动的应用程序中。

通配符的类型

以下是 MySQL 中使用的常见通配符类型,可以单独使用或组合使用通配符:

序列号

通配符

说明

1 % 该符号表示零个或多个字符。
2 _ 此符号用于精确匹配一个(单个)字符。

现在,我们将通过以下示例了解这些通配符在 MySQL 中的使用:

让我们首先创建一个名为“ employee ”的表,其中包含以下数据:

1. 百分比符号(%)

它用于从表中搜索或过滤指定 0、1 或更多字符的记录。我们可以在 LIKE 子句的第一个位置、最后一个位置或字符串的两侧使用它。

句法

使用此通配符的基本语法是:

SELECT  *  FROM  tab_name  WHERE  column_name  LIKE 'X%' ;   
或,  
SELECT  *  FROM  tab_name  WHERE  column_name  LIKE '%X' ;   
或,  
SELECT  *  FROM  tab_name  WHERE  column_name  LIKE 'X%X' ;   

在上面的语法中,' X ' 指定任意单个字符,%匹配任意数量的字符。

例子

此语句返回城市名称以“F”字符开头的所有员工。

mysql>  SELECT  *  FROM  employees  WHERE  city  LIKE 'F%' ;   

它将给出以下输出:

同样,此语句从表中返回城市名称以“a”开头并以“a”字符结尾的所有员工:

mysql>  SELECT  *  FROM  employees  WHERE  city  LIKE 'a%a' ;   

执行成功后,我们会得到如下结果:

此语句返回 X 值可以在任何位置的所有员工:

mysql>  SELECT  *  FROM  employees  WHERE  city  LIKE '%n%' ;   

它将给出如下输出:

如果我们想从表中返回城市不是以'a'开头并以'a'字符结尾的所有员工,请执行以下语句:

mysql>  SELECT  *  FROM  employees  WHERE  city  NOT LIKE 'a%a' ;    

我们将得到以下结果,我们可以看到没有以“a”开头并以“a”字符结尾的城市名称。

2.下划线(_)

当需要从与任何位置的单个字符完全匹配的表中返回结果时,我们可以使用它。

句法

使用此通配符的基本语法是:

SELECT  *  FROM  tab_name  WHERE  column_name  LIKE 'X_' ;   
或,  
SELECT  *  FROM  tab_name  WHERE  column_name  LIKE '_X' ;   

在上面的语法中,'X ' 指定任何字符串模式,而_符号正好匹配一个字符。

例子

此语句返回年龄在 40 到 49 之间的所有员工:

SELECT  *  FROM  employees  WHERE  emp_age  LIKE '4_' ;   

我们将看到如下结果:

此语句从表中返回城市名称以任何字符开头后跟“lorida”字符的所有员工:

mysql>  SELECT  *  FROM  employees  WHERE  city  LIKE '_lorida' ;   

执行成功后,我们会得到如下结果:

如果我们想从表中返回城市不以任何字符后跟“lorida”字符的所有员工,请执行以下语句:

mysql>  SELECT  *  FROM  employees  WHERE  city  NOT LIKE '_lorida' ;    

出现以下输出:

3. 连字符 (-)

当我们需要从表中过滤一定范围内的记录时,该符号用于返回结果。它是使用REGEXP_LIKE()函数的通配符的扩展版本。

此语句从employees 表中获取包含字母“b”、“c”或“d”的所有记录,如下所示:

mysql>  SELECT  *  FROM  employees  WHERE  REGEXP_LIKE(city,  '[bd]' );  

输出

执行成功后,我们会得到如下结果:

如果我们想从表中返回所有城市不包含字母“b”、“c”或“d”的员工,如下所示:

mysql>  SELECT  *  FROM  employees  WHERE NOT  REGEXP_LIKE(city,  '[bd]' );   

输出

组合通配符

我们已经了解到通配符也可以作为两者的组合使用,让我们通过下面的例子来理解它。

此语句返回姓名以 X 开头且长度至少为两个字符的所有员工:

mysql>  SELECT  *  FROM  employees  WHERE  city  LIKE 'a_%_' ;   

我们将得到以下输出:

这是另一个产生输出的示例,其中所有在收入列中的第二个位置为“5 ”的员工:

mysql>  SELECT  *  FROM  employees  WHERE  income  LIKE '_5%' ;   

我们可以得到以下输出:

以上就是关于“MySQL通配符的介绍”,大家如果对此比较感兴趣,想了解更多相关知识,可以关注一下动力节点的Java在线学习,里面的课程内容细致全面,从入门到精通,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>