MySQL select查询之LIKE与通配符用法

 更新时间:2023年12月21日 09:38:01   作者:睿思达DBA_WGX  
这篇文章主要介绍了MySQL select查询之LIKE与通配符用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

select查询之LIKE与通配符用法

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。可使用以下通配符:

通配符描述
百分号( % )替代一个或多个字符
下划线( _ )仅替代一个字符

一、百分号( % )

查询时表示在该位置可以是任意个(0 - n 个)任意字符,必须和 LIKE 运算符一起使用。

例如:

1、查询【姓王】的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> stu_name LIKE '王%';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801101 | 王占峰    | 男     | 1999-12-30 00:00:00 |  177.0 | 15937320987 | D02     |
| 201801201 | 王艳艳    | 女     | 1999-09-30 00:00:00 |  162.0 | NULL        | D03     |
| 201801203 | 王大强    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
| 201901002 | 王宏伟    | 男     | 2001-02-15 00:00:00 |  180.0 | 15937320255 | D01     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
4 rows in set (0.01 sec)

2、查询名字的最后一个字是【强】的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> stu_name LIKE '%强';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801102 | 刘国强    | 男     | 2000-08-14 00:00:00 |  174.0 | 15937320789 | D02     |
| 201801203 | 王大强    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
2 rows in set (0.00 sec)

3、查询手机号最后一个数字是【5】的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> phone LIKE '%5';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801203 | 王大强    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
| 201901002 | 王宏伟    | 男     | 2001-02-15 00:00:00 |  180.0 | 15937320255 | D01     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
2 rows in set (0.00 sec)

4、查询名字中包含【鹏】字的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> stu_name LIKE '%鹏%';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801203 | 王鹏飞    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
| 201901005 | 刘鹏      | 男     | 2001-12-18 00:00:00 |  176.0 | NULL        | D01     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
2 rows in set (0.00 sec)

二、下划线( _ )

查询时表示在该位置有且只有一个字符,字符的内容不限。

必须和 LIKE 运算符一起使用。

例如:

1、查询名字中第二个字是【鹏】的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> stu_name LIKE '_鹏%';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801203 | 王鹏飞    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
| 201901005 | 刘鹏      | 男     | 2001-12-18 00:00:00 |  176.0 | NULL        | D01     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
2 rows in set (0.00 sec)

2、查询名字中第二个字是【鹏】并且名字一共是两个字的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> stu_name LIKE '_鹏';
+-----------+----------+--------+---------------------+--------+-------+---------+
| stu_id    | stu_name | gender | birth               | height | phone | dept_id |
+-----------+----------+--------+---------------------+--------+-------+---------+
| 201901005 | 刘鹏     | 男     | 2001-12-18 00:00:00 |  176.0 | NULL  | D01     |
+-----------+----------+--------+---------------------+--------+-------+---------+
1 row in set (0.00 sec)

3、查询 phone 中倒数第二个数字是【5】的学生信息

mysql> SELECT
    -> *
    -> FROM
    -> stu
    -> WHERE
    -> phone LIKE '%5_';
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id    | stu_name  | gender | birth               | height | phone       | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801103 | 巩莉      | 女     | 2000-06-18 00:00:00 |  170.0 | 15937320456 | D02     |
| 201801203 | 王鹏飞    | 男     | 2000-10-19 00:00:00 |  174.0 | 15937320555 | D03     |
| 201901002 | 王宏伟    | 男     | 2001-02-15 00:00:00 |  180.0 | 15937320255 | D01     |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
3 rows in set (0.00 sec)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 一文掌握MySQL锁表方法

    一文掌握MySQL锁表方法

    在MySQL中,可以使用多种方法来锁定表,这些方法取决于你的具体需求,比如是锁定整个表还是行级锁,本文给大家分享一些常用的MySQL锁表方法,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • MySql恢复数据方法梳理讲解

    MySql恢复数据方法梳理讲解

    MySQL的binlog日志是MySQL日志中非常重要的一种日志,下面这篇文章主要给大家介绍了关于mysql如何利用binlog进行数据恢复的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • mysql一次将多条不同sql查询结果并封装到一个结果集的实现方法

    mysql一次将多条不同sql查询结果并封装到一个结果集的实现方法

    这篇文章主要给大家介绍了关于mysql一次将多条不同sql查询结果并封装到一个结果集的实现方法,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 浅谈mysql 自定义函数

    浅谈mysql 自定义函数

    本文主要是分析了一下在工作中写的一个mysql的自定义函数,很简单,仅仅是希望能对大家理解mysql自定义函数有所帮助。
    2014-09-09
  • MySQL实现显示百分比显示和前百分之几的方法

    MySQL实现显示百分比显示和前百分之几的方法

    这篇文章主要介绍了MySQL中如何显示百分比和显示前百分之几的,文中的示例代码讲解详细,对我们学习MySQL有一定的帮助,感兴趣的小伙伴可以了解一下
    2021-12-12
  • 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较

    深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较

    本篇文章是对MySQL数据库MyISAM与InnoDB存储引擎的比较进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 不卸载原有mysql直接安装mysql8.0

    不卸载原有mysql直接安装mysql8.0

    本文主要介绍了不卸载原有mysql直接安装mysql8.0,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MySQL 搭建主从同步实现操作

    MySQL 搭建主从同步实现操作

    这篇文章主要介绍了MySQL 中的主从同步实现操作,文章围绕如何搭建主从同步详细展开内容,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • mysql通过INSERT IGNORE INTO插入拼音字符无效问题及解决

    mysql通过INSERT IGNORE INTO插入拼音字符无效问题及解决

    这篇文章主要介绍了mysql通过INSERT IGNORE INTO插入拼音字符无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现

    MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现

    这篇文章主要介绍了MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现,事务A 按照查询条件读取某个范围的记录,其他事务又在该范围内出入了满足条件的新记录,当事务A再次读取数据到时候我们发现多了满足记录的条数
    2022-07-07

最新评论