更新时间:2022-07-25 10:02:51 来源:极悦 浏览1690次
在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极悦在线学习,里面的课程内容细致全面,从入门到精通,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习