本文继续对 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. Java 参数后面跟三个... 的作用
  2. 比特币现金网络会看到什么样的代币?
  3. python一般用什么编译器-Python必学之编译器用哪个好?你用错了吧!
  4. 四年努力,梦归阿里,和大家聊聊成长感悟
  5. python中with的用法
  6. 用HOOK禁用鼠标与键盘点击
  7. 用python的五种方式_Python加载数据的5种不同方式(收藏)
  8. [react] 在React中我们怎么做静态类型检测?都有哪些方法可以做到?
  9. Debug Assertion Failed _CrtlsValidHeapPointer(block) realloc堆引发的错误
  10. 神经进化是深度学习的未来
  11. 向MIP开源项目提交Issues
  12. LeetCode 64 最小路径和
  13. C++ vector所有操作,你真的掌握vector了吗?两万总结带你干穿vector
  14. python爬取个人信息_Python爬取个人支付宝朋友信息操作示例
  15. oracle学习笔记 学习前奏
  16. Python修改图片大小
  17. oracle 隐式转换
  18. 【遗传编程/基因规划】Genetic Programming
  19. 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
  20. 前端---div 显示与隐藏

热门文章

  1. Go 运行时(go runtime)的含义
  2. Pandas 使用入门
  3. xgboost重要参数1
  4. LeetCode简单题之将找到的值乘以2
  5. TensorFlow常用Python扩展包
  6. BEP 7:CUDA外部内存管理插件(上)
  7. 小目标检测的增强算法
  8. 客快物流大数据项目(二十二):Docker环境中安装软件
  9. C++ string字符串的比较是否相等
  10. UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe6 in position 0: ordinal not in range(128)