SQL LIKE
时间:2018-11-15 17:44:16 来源:igfitidea点击:
在本教程中,我们将展示如何使用SQL LIKE操作符根据模式进行数据查询。
SQL LIKE操作符介绍
LIKE操作符允许您根据指定的模式搜索文本字符串。
您可以在任何有效的SQL语句(如SELECT、UPDATE或DELETE)的WHERE子句中使用LIKE操作符。
SQL提供了两个通配符用于构造模式。这两个通配符是百分号(%)和下划线(_)。
- 百分号(%)将匹配任何字符(包括空格)的序列。
- 下划线(_)将匹配任何单个字符。
LIKE操作符与SELECT语句一起使用时的语法如下:
SELECT column1, column2 FROM table WHERE column LIKE pattern;
WHERE子句中的列的数据类型必须是字母数字的,例如char、varchar等
SQL LIKE 操作符示例
让我们看一些使用LIKE操作符的例子。
使用百分号(%)
- 假设我们要查找姓名以字母D开头的员工,可以使用下面查询语句:
SELECT lastname, firstname FROM employees WHERE lastname LIKE 'D%'
匹配表达式"D%"表示将匹配任何以字符“D”开头、后跟任何字符的字符串。
- 要查找名字以“n"结尾的员工:
SELECT lastname, firstname FROM employees WHERE lastname LIKE '%n'
表达式"%n"将匹配任何以字符'n'结尾的字符串。
- 还可以将通配符' % '放在字符串的开头和结尾,以匹配包含通配符中的字符串的任何字符串。
例如,要查找姓名中包含字符串“ll”的员工,可以使用下面的查询语句:
SELECT lastname, firstname FROM employees WHERE lastname LIKE '%ll%'
这两个通配符的组合使用
您可以组合两个通配符' % '和' _ '来构造一个模式表达式。
例如,查找姓名以任意单个字符开头,后跟字符a,并以任意字符结尾的员工:
SELECT lastname, firstname FROM employees WHERE lastname LIKE '_a%'
SQL LIKE 和 NOT 操作符一起使用
可以将LIKE操作符与NOT操作符组合使用,以查找与指定模式不匹配的任何字符串。
例如查找名字不以D开头的员工:
SELECT lastname, firstname FROM employees WHERE lastname NOT LIKE 'D%'
通配符字符转义
如果要匹配的模式包含通配符,例如5%或者_10。
要使用此模式,则需要转义模式中的通配符。
不同的数据库使用不同的方式来转义通配符(%,_)。
最常见的方法是使用反斜杠(\)字符或ESCAPE
子句。
下面是如何使用反斜杠()字符转义通配符:
column LIKE '%\_10%'
ESCAPE子句允许您自己指定转义字符,而不是反斜杠字符。
例如,下面的例子使用@作为转义字符:
column LIKE '%20@%' ESCAPE '@';
模式%20@%
将匹配任何以20%结尾的字符串。