命令行操作MySQL - LIKE模糊查询

这是命令行操作MySQL数据库系列博客的第十五篇,今天这篇博客记录LIKE模糊查询。



简介

当我们只想用字符串中间的一部分特征查找含有特征字串的信息时,MySQL提供了关键字LIKE来实现模糊查询,需要使用通配符。
就比如,我们只记得一个朋友的姓是张,却忘记名字了,那么我们就可以使用模糊查询,只查询张,就可以将它名字信息查询出来。

通配符

在MySQL中,字符串必须加上单引号(’’)和双引号(″″)。由于关键字LIKE可以实现模糊查询,因此该关键字后面的字符串参数除了可以使用完整的字符串外,还可以包含通配符。LIKE关键字支持的通配符如下表所示。

符号功能描述
_该通配符值能匹配单个字符
%该通配符可以匹配任意长度的字符串,即可以是0个字符,也可以是1个字符,也可以是很多字符

使用语法

  1. LIKE
    select * from 表名 where 字段名 LIKE 模糊匹配的数据;

    select * from 表名 where 字段名 LIKE 模糊匹配的数据 AND 字段名 LIKE 模糊匹配的数据;

  2. NOT LIKE
    select * from 表名 where 字段名 NOT LIKE 模糊匹配的数据;

例:
创建一张表,并插入数据:

create table like_test(id int PRIMARY KEY AUTO_INCREMENT, name varchar(32));

insert into like_test(name) values('abc'), ('bcd'), ('cde'), ('一二三'), ('二三四'), ('三四五');

在这里插入图片描述

通配符 ’ % ’

匹配0个或多个字符。

  1. 查询数据中含有’b’字母所有数据

    select * from like_test where name LIKE '%b%';
    

    在这里插入图片描述

  2. 查询数据中即含有’b’又含有’c’字母的所有数据

    mysql> select * from like_test where name LIKE '%b%' AND name LIKE '%c%';
    

    在这里插入图片描述

  3. 查询数据中以’一’开头的所有数据

    select * from like_test where name LIKE '一%';
    

    在这里插入图片描述

通配符 ’ _ ’

只匹配单个字符。

  1. 查询数据中已’c’在中间,左右两边各含有一个字符的数据

     select * from like_test where name LIKE '_c_';
    

    在这里插入图片描述

  2. 查询数据中以’三’开头,后面还有两个汉字的数据

    select * from like_test where name LIKE 'c__';
    

    在这里插入图片描述

  3. 查询第二个字符是’三’的数据

    select * from like_test where name LIKE '_三%';
    

    在这里插入图片描述

NOT LIKE

查询符合条件之外的所有数据。

  1. 查询数据中不含有’三’的所有数据

    select * from like_test where name NOT LIKE '%三%';
    

    在这里插入图片描述

  2. 查询数据中不包括第三个数据是’三’的所有数据

    select * from like_test where name NOT LIKE '__三%';
    

    在这里插入图片描述

模糊查询整型数据

模糊查询也支持查询其它类型的数据,但是它底层始终都是以字符串的方式进行查询。

  1. 查询数据中以’1’开头的数据

    select * from like_test where id LIKE '1%';
    

    在这里插入图片描述

  2. 查询除’1’开头之外的所有数据

    select * from like_test where id NOT LIKE '1%';
    

    在这里插入图片描述

  3. 查询所有数据

    select * from like_test where id LIKE '%%';
    

    在这里插入图片描述


总结:
从上面所列举出来的例子可以知道,LIKE模糊查询并不难,搞懂通配符的使用方式,再结合LIKE使用即可。需注意,如果不使用通配符的话是无法查询到结果的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值