本文继续对 MySQL 中的通配符过滤、正则表达式、运算符进行分类总结。

1. 通配符

LIKE 指示 MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较,其中分为 %_ 通配符。

% 表示任何字符出现 0 次或者任意次数

如:

SELECT prod_id, prod_name FROM products
WHERE prod_id LIKE 'jet%'

_ 只匹配单个个任意字符

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil'

以下是一些模式和匹配的字符串:

  • LIKE 'en%':匹配以“en”开始的字符串,例如“english languages”、“end”;
  • LIKE '%en%':匹配包含“en”的字符串,例如“length”、“when are you”;
  • LIKE '%en':匹配以“en”结束的字符串,例如“ten”、“when”;
  • LIKE 'Be_':匹配以“Be”开始,再加上一个任意字符的字符串。例如“Bed”、“Bet”;
  • LIKE '_e%':匹配一个任意字符加上“e”开始的字符串,例如“her”、“year”。

2. 转义字符

转义字符可以将通配符 %_ 进行转义,将它们当作普通字符使用。默认的转义字符为反斜杠(\)。

下面例子查询 25% 的数据

-- 查询包含字符串 25% 的数据
SELECT c1FROM t_likeWHERE c1 LIKE '%25\%%';
-- WHERE c1 LIKE '%25#%%' ESCAPE '#'; -- 指定 # 作为转义字符c1        |
----------|
进度:25% 已完成|

第一个 % 匹配多个任意字符;第二个 % 前面增加了转义字符(\),表示匹配一个百分号;第三个 % 匹配多个任意字符。

查询结果中只有一条满足结果的数据,如果去掉转义字符(\)将会返回两条记录。另外,也可以通过 ESCAPE 指定其他的转义字符。

3. 正则表达

  • 正则表达模式主要有以下几种:

  • 匹配字符类见下图

4. 运算符

主要有算术运算符、比较运算符、逻辑运算符、位运算符

  • BETWEEN
SELECT emp_name, salaryFROM employeeWHERE salary BETWEEN 10000 AND 15000;

需要注意的是,BETWEEN 包含了两端的值(10000 和 15000)

  • IN
    IN 运算符可以用于查找列表中的值。只要匹配列表中的任何一个值,都会返回结果。

NOT 运算符可以结合其他的运算符一起使用,用于对查询条件的结果取反:

  • NOT BETWEEN,位于范围之外。
  • NOT IN,不在列表之中。
  • NOT LIKE,不匹配某个模式。LIKE 运算符用于字符串的模糊查找。
  • NOT EXISTS,子查询中不存在结果。
  • NOT IS NULL,不为空。等价于 IS NOT NULL

以下是 SQL 中各种条件运算符按照优先级从高到低进行的排列;必要时可以使用圆括号进行调整。

  • =、!=、<>、<、<=、>、>=
  • IS [NOT] NULL、[NOT] LIKE、[NOT] BETWEEN、[NOT] IN、[NOT] EXISTS
  • NOT
  • AND
  • OR

MySQL 学习笔记(2)— 通配符/正则表达/运算符相关推荐

  1. mysql学习笔记-使用通配符模糊查找

    什么是通配符 通配符是用来匹配值的一部分的特殊字符,然后再字面值.通配符或两者组合构成完整的搜索条件. 如果使用通配符,必须结合LIKE操作符使用.LIKE后跟的是完整的搜索条件. 注意:通配符搜索只 ...

  2. Mysql学习笔记(三)运算符和控制流函数

    原文:Mysql学习笔记(三)运算符和控制流函数 本章学习内容: 1.操作符 2.控制流程函数 操作符: i.圆括号.. 简单的介绍一下圆括号,圆括号的使用的目的是规定计算表达式的顺序...这个想必大 ...

  3. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

  4. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  5. JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)

    MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...

  6. MySQL学习笔记——尚硅谷李玉婷经典版MySQL基础笔记(一)

    MySQL学习笔记--尚硅谷李玉婷经典版MySQL基础笔记(一) MySQL学习笔记目录 MySQL学习笔记--尚硅谷李玉婷经典版MySQL基础笔记(一) 一.基础知识 1.MySQL的语法规范 2. ...

  7. Mysql 学习笔记(快速复习)

    Mysql 学习笔记(快速复习) 一.MySQL 基础 1.数据库连接工具 1.1.Navicat 使用教程 2.DDL 操作数据库 2.1.创建新数据库 2.2.删除数据库 2.3.使用数据库 3. ...

  8. 数据库MySQL学习笔记高级篇(周阳)

    数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  9. Mysql学习笔记day1 --三天学完mysql所有知识点

    Mysql 超全MySQL学习笔记,三天就可以学会熟练运用SQL语句,干货满满,文章末尾有相应的练习题,可以多练练加深印象,希望我的文章对你有所帮助 一.服务器 1.什么是服务器?用于提供共享资源文件 ...

最新文章

  1. 程序员请收好:10个非常实用的 VS Code 插件
  2. 弹性计算双周刊 第 9 期
  3. 你是合格的程序员吗?(欢迎大家自测)
  4. 交叉驰豫的影响因素_交叉滚子轴承系列吉林薄壁交叉滚子轴承用途博盈
  5. sed替换字符时 ' /等符号的处理
  6. 关于NGINX变量的一些测试结果
  7. selenium chromedriver usage
  8. ECharts学习总结(一):ECharts的第一个图表
  9. java-序列化以及反序列化
  10. python 动态执行 内存变化_深入理解python数组的动态扩容机制以及摊销分析
  11. 电脑微信不显示好友头像和聊天表情
  12. mx播放器有没有投屏功能_这个播放器真是太强大了!
  13. 07_音频录制01_命令行
  14. [置顶] LED办公楼宇照明节能方案及城市夜景照明节能方案
  15. linux vi命令的查询,关于Linux vi命令 vi命令一览表
  16. 使用eagle导出PCB制造商可用的gerber文件
  17. spark中的cache()、persist()和checkpoint()的区别
  18. ArduPilot之开源代码Sensor Drivers设计
  19. 如何在 Ubuntu 中加密硬盘
  20. 如何删除卸载苹果mac电脑应用软件没有残留垃圾

热门文章

  1. 2022-2028年中国TFT玻璃行业市场研究及前瞻分析报告
  2. OpenCV 笔记(09)— 常用的数据结构和函数(Vec、Point、Scalar、Size、Rect、cvtColor)
  3. Linux shell 学习笔记(15)— shell 正则表达式
  4. 查看LINUX发行版的名称及其版本号
  5. Linux top命令常见使用
  6. BiLSTM-CRF学习笔记(原理和理解) 维特比
  7. Http请求之优雅的RestTemplate
  8. 2002年3月英伟达发布核弹GPU与大算力自动驾驶芯片
  9. IP SOC与Camera ISP
  10. android app 内置图标icon 的标准,(目前是2019年)