好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQL LIKE通配符(%,_)及escape实例讲解

摘要 : 在本教程中,您将学习如何使用MySQL LIKE操作符模糊查询数据及其通配符%、下划线、escape使用实例。

 

LIKE 操作符常用于模式匹配查询数据。以正确的方式使用 LIKE 运算符对于提高查询性能至关重要。

LIKE 操作符允许您从基于指定的模式选择表中的数据。因此, LIKE 操作符经常用于SELECT语句的WHERE子句中。

MySQL提供了两个通配符与 LIKE 操作符一起使用:百分比  % 和下划线 _ 。

percent( % )通配符允许您匹配任何零个或多个字符的字符串。 下划线( _ )通配符允许您匹配任何单个字符。

 

MySQL LIKE示例

让我们练习一些使用 LIKE 操作符的例子。请参 employees 见下表。

 

MySQL LIKE 百分号(%)通配符

假设要查找名字以字符a开头的员工,可以在模式匹配的结尾处使用百分比(%)通配符,如下所示:

 SELECT 
    employeeNumber, lastName, firstName
FROM
    employees
WHERE
    firstName LIKE 'a%'; 

结果如下:

MySQL扫描整个 employees 表以查找名字以字符a开头,后跟任意数量字符的员工。

如果要查找名字以on结尾的员工,可以在模式匹配查询中使用通配符%开头,[on]结尾的组合, 如:

 SELECT 
    employeeNumber, lastName, firstName
FROM
    employees
WHERE
    lastName LIKE '%on'; 

结果如下:

如果你要查找名字含有on的员工,则可以使用 like '%on%',如:

 SELECT 
    employeeNumber, lastName, firstName
FROM
    employees
WHERE
    lastname LIKE '%on%'; 

结果如下:

 

MySQL LIKE通配符下划线(_)

如果要查找姓名以T开头,m结尾并且名字为三个字符的员工,可以使用下划线通配符来构造一个SQL查询语句,如:

 SELECT 
    employeeNumber, lastName, firstName
FROM
    employees
WHERE
    firstname LIKE 'T_m'; 

结果如下:

 

MySQL LIKE运算符与NOT运算符

MySQL允许您结合 NOT 运算符和 LIKE 运算符来查找不匹配特定模式的字符串。

假设要查找姓氏不以字符 B 开头的员工,可以使用 NOT LIKE 模式匹配:

 SELECT 
    employeeNumber, lastName, firstName
FROM
    employees
WHERE
    lastName NOT LIKE 'B%'; 

结果如下:

请注意,如果LIKE运算符的查询模式使用的是字母,那么它是不区分大小写的,因此b%和B%两个型态查询产生的结果是相同的。

 

MySQL LIKE与ESCAPE

有时,要匹配的模式包含通配符,例如10%,_20等。在这些情况下,可以使用 ESCAPE 子句指定转义字符,以便MySQL将通配符解释为文字字符。如果没有明确指定转义字符,默认的转义字符是反斜杠"\"。

例如,如果要查找products表中productCode字段包含字符串 _20 的产品,则可以使用模式 %\_20% 查询:

 SELECT 
    productCode, productName
FROM
    products
WHERE
    productCode LIKE '%\_20%'; 

或者也可以指定一个不同的转义字符。例如,通过ESCAPE子句使用 $ 作为转义符:

 SELECT 
    productCode, productName
FROM
    products
WHERE
    productCode LIKE '%$_20%' ESCAPE '$'; 

结果如下:

模式 %$_20% 匹配包含 _20 字符串的任何字符串。

LIKE语句 会扫描表中的所以行,因此,索引对优化like语句来说没有任何效果。所以,使用LIKE操作符查询大量数据时,其性能非常低。

查看更多关于MySQL LIKE通配符(%,_)及escape实例讲解的详细内容...

  阅读:28次

上一篇

下一篇

第1节:MySQL AND运算符实例讲解    第2节:MySQL BETWEEN AND实例及边界值问题    第3节:MySQL DISTINCT去除及多字段实例讲解    第4节:MYSQL having实例及与where的区别    第5节:MySQL INNER JOIN多表连接及优化效率实例分析    第6节:MySQL group by having与聚合函数count sum使用实例讲解    第7节:MySQL LIKE通配符(%,_)及escape实例讲解    第8节:MySQL OR运算符使用实例优先级介绍    第9节:MySQL IN运算符实例讲解    第10节:MySQL LIMIT实例及取前N行数据    第11节:MySQL IS NULL判断值是否为NULL及优化详解    第12节:MySQL ORDER BY实例及性能优化分析    第13节:mysql order by如何实现自然排序    第14节:MySQL LEFT JOIN实例及优化分析    第15节:mysql 下载与安装    第16节:MySQL示例数据库下载    第17节:如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器    第18节:MySQL SELECT语句实例讲解    第19节:MySQL WHERE子句使用实例讲解    第20节:Mysql入门教程    第21节:MySQL Alias表别名、字段别名使用实例    第22节:MySQL自连接实例讲解