点击上方渣渣张的自白,关注获取SQL视频教程
SQL专栏
SQL数据库基础汇总SQL基本介绍
有时在查询表中数据时需要返回符合某种匹配格式的所有记录,这时就需要使用LIKE或NOT LIKE谓词来指定模糊查询条件。
LIKE 作用
在WHERE子句中使用LIKE运算符来搜索列中的指定模式。
有两个通配符与LIKE运算符一起使用:
%
- 百分号表示零个,一个或多个字符_
- 下划线表示单个字符
LIKE 语法
SELECT column1, column2, ...
FROM table_or_view
WHERE columnN LIKE pattern;
提示:您还可以使用AND或OR运算符组合任意数量的条件。
SQL的参数说明
table_or_view : 表名或视图的名称。
column_list: 由逗号分隔的列名列表。
columnN : 需要模糊查询匹配的列名。
pattern : 模糊查询匹配条件。
下面是一些使用'%'和'_'通配符显示不同LIKE运算符的例子:
查询出某列中包含mr字符的数据,其中mr可以出现在任意位置 | WHERE 列名 LIKE '%mr%' |
查询出某列中包含mr字符的数据,其中mr出现在开头位置 | WHERE 列名 LIKE 'mr%' |
查询出某列中包含mr字符的数据,其中mr出现在结尾位置 | WHERE 列名 LIKE '%mr' |
查询出某列中前俩个字符为mr,后一个字符为任意字符的数据 | WHERE 列名 LIKE 'mr_' |
查询出某列中前一个字符为任意字符,后俩个字符为mr的数据 | WHERE 列名 LIKE '_mr' |
查询出某列中以m或r字符开头的数据 | WHERE 列名 LIKE '[mr]%' |
查询出某列中以a~e之间的字符开头的数据,包括a和e | WHERE 列名 LIKE '[a-e]%' |
查询出某列中不是以m字符或r字符开头的数据 | WHERE 列名 LIKE '[^mr]%' |
查询出某列中不是以a~e之间的字符开头的数据 | WHERE 列名 LIKE '[^a-e]%' |
示例数据库
以下是 "base_category" 表中的数据:
实例01
在"base_category" 商品表,查询出所有以‘上’开头的城市的数据。
我们使用以下SQL语句:
SELECT * FROM base_category WHERE 城市 LIKE '上%';
现在,"base_category" 表如下所示:
实例02
在"base_category" 商品表,查询出所有以‘肥’结尾的城市的数据。
SQL语句如下:
SELECT * FROM base_category WHERE 城市 LIKE '%肥';
结果如下:
实例03
在"base_category" 商品表,查询出商品名称第二位为‘护’的商品名称数据。
SQL语句如下:
SELECT * FROM base_category WHERE 商品名称 LIKE '_护%';
结果如下:
实例04
在"base_category" 商品表,查询出商品名称以‘个’开头 以‘妆’结尾的所有数据。
SQL语句如下:
SELECT * FROM base_category WHERE 商品名称 LIKE '个%妆';
结果如下:
实例05
在"base_category" 商品表,查询城市不以‘上’开头的所有数据。
SQL语句如下:
SELECT * FROM base_category WHERE 城市 NOT LIKE '上%';
结果如下:
批注
LIKE关键字主要作用就是模糊匹配,把你不是太明确的数据通过%,_进行组合来搜索到大概的数据。通过分析大概的数据进一步找到你需要的数据。在查找数据中经常用到,而且用法也很灵活。
点击「」了解SQL基础