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

本文对MySQL中的通配符过滤、正则表达式、运算符进行分类总结。介绍了通配符的使用,如%和_的匹配规则,转义字符可将通配符当作普通字符;阐述了正则表达模式,还列举了算术、比较等运算符,以及BETWEEN、IN等特殊运算符的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文继续对 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 c1
  FROM t_like
 WHERE c1 LIKE '%25\%%';
-- WHERE c1 LIKE '%25#%%' ESCAPE '#'; -- 指定 # 作为转义字符

c1        |
----------|
进度:25% 已完成|

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

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

3. 正则表达

正则表达

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

正则表达模式

  • 匹配字符类见下图

正则表达字符类

4. 运算符

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

运算符

  • BETWEEN
SELECT emp_name, salary
  FROM employee
 WHERE 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wohu007

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

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

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

打赏作者

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

抵扣说明:

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

余额充值