MySQL必知必会 学习笔记 第九章 用正则表达式进行搜索

2023-11-02

正则表达式是用来匹配文本的特殊的串,它用正则表达式语言来建立。

MySQL支持的正则表达式仅为正则表达式的一个很小的子集。

可通过WHERE子句使用正则表达式过滤SELECT检索出的数据。

检索条件列包含字符100的所有行:

SELECT columnName
FROM tableName
WHERE columnName REGEXP '.00';

以上正则表达式.00中的点表示匹配任意一个字符。

LIKE匹配整个列,而REGEXP会在列中找是否有符合模式串的部分,如果存在此部分就会返回该行。

MySQL 3.23.4后,正则表达式匹配不区分大小写,为区分大小写,可在使用BINARY关键字:WHERE columnName REGEXP BINARY '.00'

检索条件列包含字符100或200的所有行:

SELECT columnName
FROM tableName
WHERE columnName REGEXP '100|200';

使用字符集合检索条件列包含字符100或200或300的所有行:

SELECT columnName
FROM tableName
WHERE columnName REGEXP '[123]00';

以上正则表达式是缩写,也可写为[1|2|3]00

检索条件列不包含字符100或200或300的.00的所有行:

SELECT columnName
FROM tableName
WHERE columnName REGEXP '[^123]00';

字符集合可被简化,[2-9]表示不含1的数字集合,[b-z]表示不含a的字母集合。

使用转义符\检索条件列含特殊字符如.的所有行:

SELECT columnName
FROM tableName
WHERE columnName REGEXP '\\.';    # MySQL字符串中,\也表示转义符,因此需要两个\\,MySQL解释一个,正则库解释一个

转义方括号时:
在这里插入图片描述
在这里插入图片描述

转义符也能用来引用元字符:
在这里插入图片描述

字符类是预定义的字符集:
在这里插入图片描述
上表中有2个错误,一是[:blank:]并不等同于[\\t],后者只会匹配制表符;二是[:punct:]只匹配标点字符,而根据上表中的描述,空格字符也会被匹配到。
在这里插入图片描述
'\\([0-9] sticks?\\)'中的\\(会匹配([0-9]会匹配数字,sticks?会匹配sticksticks(?会匹配它之前的字符出现一次或零次的情况),\\)会匹配)

[[:digit:]]{4}匹配连续出现的四个任意数字。

在这里插入图片描述
^[0-9\\.]表示匹配以数字或点开头的文本。^放在集合中表示否定该集合,放在开头表示串的开始处。

可同时使用^$像LIKE一样匹配整个串:
在这里插入图片描述
不使用数据库表的情况下测试正则表达式:

SELECT 'hello' REGEXP '[0-9]';

运行它:
在这里插入图片描述
REGEXP总是返回0(匹配失败)或1(匹配成功)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL必知必会 学习笔记 第九章 用正则表达式进行搜索 的相关文章

  • MYSQL必知必会:格式化导入导出数据集

    在mysql中 我们可以把查询到的结果集通过自定义的格式打印到指定文件内 指定文件不存在 如果指定文件存在 则失败 下面是表结构合表数据 1 格式化导出数据 把表order info的所有记录的所有字段导入到 d 1 sql 文件内 sel
  • MySQL必知必会 学习笔记 第三章 使用MySQL

    为连接到MySQL 需要 1 主机名 如连接到本地MySQL服务器 为localhost 2 端口 如使用默认的3306以外的端口 3 用户名 4 用户口令 连接到MySQL时 没有任何数据库打开供你使用 打开数据库 use databas
  • MySQL必知必会 学习笔记 第十九章 插入数据

    插入可用以下方式进行 1 插入完整行 2 插入行的一部分 3 插入多行 4 插入某些查询的结果 可针对每个表或每个用户 利用MySQL的安全机制禁止使用INSERT语句 插入语句没有输出 插入完整的行 INSERT INTO tableNa
  • MySQL必知必会 学习笔记 第二十六章 管理事务处理

    并非所有引擎都支持事务处理 MyISAM不支持 InnoDB支持 事务处理可用来维护数据库的完整性 它保证成批的MySQL操作要么完全执行 要么完全不执行 如果没有错误发生 整组语句写到数据库表 如果发生错误 将已经执行的部分语句进行回退
  • MySQL必知必会——第十四章使用子查询

    使用子查询 本章介绍什么是子查询以及如何使用它们 子查询 SELECT语句是SQL的查询 目前我们用的所有SELECT语句都是从单个数据库表中检索数据的单条简单语句 查询 query 任何SQL语句都是查询 但此术语一般指SELECT语句
  • MySQL必知必会 学习笔记 第一章 了解SQL

    数据库是保存有组织的数据的容器 通常是一个或一组文件 数据库软件称为DBMS 数据库管理系统 数据库是被DBMS创建和操纵的容器 数据库究竟是文件或其他东西并不重要 因为你不会直接访问数据库 而是间接通过DBMS替你访问数据库 表是某种特定
  • MySQL必知必会 学习笔记 第二十七章 全球化和本地化

    不同的语言和字符集需要以不同的方式存储和检索 MySQL需要适应不同的字符集 以及排序和检索这些数据的方法 术语 1 字符集 字母和符号的集合 2 编码 某个字符集成员的内部表示 3 校对 规定字符如何比较 查看MySQL支持的字符集列表
  • MySQL必知必会 学习笔记 第十四章 使用子查询

    MySQL 4 1引入了子查询 任何SQL语句都是查询 但此术语一般指SELECT语句 有两张表 一张是语言表 一张是电影表 选出语言是英语的电影 SELECT title FROM film WHERE language id IN SE
  • MySQL必知必会——第十章创建计算字段

    创建计算字段 本章介绍什么是计算字段 如何创建计算字段以及怎样从应用程序中使用别名引用它们 计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式 例如 想在一个字段中显示公司名和地址 但公司名和地址在不同的列中等等 我们需要直接从数
  • MySQL必知必会 学习笔记 第九章 用正则表达式进行搜索

    正则表达式是用来匹配文本的特殊的串 它用正则表达式语言来建立 MySQL支持的正则表达式仅为正则表达式的一个很小的子集 可通过WHERE子句使用正则表达式过滤SELECT检索出的数据 检索条件列包含字符100的所有行 SELECT colu
  • MySQL必知必会——第十六章创建高级联结

    创建高级联结 本章将讲解另外一些联结类型 包括它们的含义和使用方法 介绍如何对被联结的表使用表别名和聚集函数 使用表别名 第十章 MySQL必知必会 第十章创建计算字段 介绍了如何使用别名引用表列 mysql gt SELECT Conca
  • MySQL必知必会——第二十章更新和删除数据

    更新和删除数据 本章介绍如何利用UPDATE和DELETE语句进一步操纵表数据 更新数据 为了更新 修改 表中的数据 可以使用UPDATE语句 UPDATE的两种用法 更新表中特定行 更新表中所有行 不要省略WHERE子句 缺少WHERE子
  • MySQL必知必会 学习笔记 第二十八章 安全管理

    用户应该具有适当的访问权 既不能多也不能少 MySQL Administrator提供了图形界面 可用来管理用户和账号权限 MySQL创建一个名为root的用户账号 它对整个MySQL服务器有完全的控制 在日常工作中 决不能使用root 而
  • MySQL必知必会 学习笔记 第七章 数据过滤

    可用AND操作符给WHERE子句附加条件 SELECT columnName FROM tableName WHERE columnName1 1 AND columnName2 2 OR操作符指示MySQL匹配符合操作符任一端条件的行 S
  • MySQL必知必会——第六章过滤数据

    过滤数据 本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件 使用WHERE子句 数据库一般包含大量的数据 很少需要检索表中所有的行 通常只会根据需求来提取部分表数据 只检索所需数据需要指定搜索条件 search criteri
  • MySQL必知必会 学习笔记 第二十三章 使用存储过程

    MySQL 5中增加了存储过程的支持 一个操作需要多条SQL语句才能完成时 可以创建存储过程 其中保存一条或多条SQL语句 使用存储过程的理由 1 通过把处理封装在容易使用的单元中 简化复杂的操作 2 所有人都使用同一存储过程代替某复杂操作
  • MySQL必知必会 学习笔记 第十八章 全文本搜索

    并非所有引擎都支持全文本搜索 MyISAM支持 更新 1 MySQL 5 6 以前的版本 只有 MyISAM 存储引擎支持全文索引 2 MySQL 5 6 及以后的版本 MyISAM 和 InnoDB 存储引擎均支持全文索引 3 只有字段的
  • MySQL必知必会 学习笔记 第二十二章 使用视图

    MySQL 5添加了对视图的支持 视图是虚拟的表 它包含的是一个查询的结果 它本身不含数据 只是用来查看存储在别处的数据的一种设施 视图返回的数据是从其他表中检索出来的 在添加或更改这些表中的数据时 视图将返回改变过的数据 视图的应用 1
  • MySQL必知必会 学习笔记 第十二章 汇总数据

    聚集函数是运行在行组上 计算和返回单个值的函数 对表中数据而非实际数据本身进行汇总 如获取行数 获取某列最值等 除上述函数外 MySQL还支持标准偏差聚集函数 返回某列平均值 SELECT AVG columnName AS avgVal
  • MySQL必知必会——第四章检索数据

    检索数据 本章将介绍如何使用SELECT语句从表中检索一个或多个数据列 SELECT语句 SQL语句是由简单的英语单词关键字构成的 每个SQL语句都由一个或多个关键字构成 最常用的SQL语句就是SELECT语句 它的用途是从一个或多个表中检

随机推荐

  • ScriptManager的用法

    脚本管理控件 ScriptManger 是ASP NET AJAX中非常重要的控件 通过使用ScriptManger能够进行整个页面的局部更新的管理 ScriptManger用来处理页面上局部更新 同时生成相关的代理脚本以便能够通过Java
  • 怎么画因果图?因果图绘图步骤详解

    因果图设计法 因果图法是一种利用图解法分析输人的各种组合情况的测试方法 它考虑了输入条件的各种组合及输入条件之间的相互制约关系 并考虑输出情况 例如 某一软件要求输人地址 具体到市区 如 北京 昌平区 天津 南开区 其中第2个输人受到第1个
  • C++tuple快速而随意的数据结构

    初始化 lt 学号 姓名 年龄 gt tuple
  • 转:通过注册表查看操作系统默认编码的方法

    在 转 使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系 介绍了一种通过chcp查看windows操作系统默认编码的方法 同时还有一种通过注册表查看默认编码的方法 虽然是以没有dos命令简单 但也可以使用
  • mbedtls交换服务器证书,mbedtls

    mbedtls系列文章 Demo工程源码 https github com Mculover666 mbedtls study demo 本工程基于STM32L41RCT6开发板 包含了本系列文章中所编写的所有Demo 持续更新 文章目录
  • xgboost 调参经验

    本文介绍三部分内容 xgboost 基本方法和默认参数 实战经验中调参方法 基于实例具体分析 1 xgboost 基本方法和默认参数 在训练过程中主要用到两个方法 xgboost train 和xgboost cv xgboost trai
  • LambdaQueryWrapper用法简单介绍

    1 层级关系 2 LambdaQueryWrapper 与QueryWrapper查询类似 不过使用的是Lambda语法 举例如下 package com mszlu blog dao pojo import lombok Data Dat
  • pywintypes.com_error: (-2147221008, ‘CoInitialize has not been called.‘, None, None)

    在使用xlwings多线程时 出现这样的报错 导致Excel表无法打开 是多线程调用的问题 解决方法 import pythoncom 在这个线程的函数开始运行之前调用这句即可 def daily report pythoncom CoIn
  • C语言:选择+编程(每日一练Day16)

    目录 选择题 题一 题二 题三 题四 题五 编程题 题一 数对 思路一 题二 截取字符串 思路一 本人实力有限可能对一些地方解释和理解的不够清晰 可以自己尝试读代码 或者评论区指出错误 望海涵 感谢大佬们的一键三连 感谢大佬们的一键三连 感
  • 解决vscode空格间距过小 tab不是四格的问题

    打开顺序 1 文件 首选项 设置 2 在框框中输入font 如下图所示 3 在 Editor Font Family的框框中 注意 是把第一个逗号前面的东西换成Consolas 如下图所示 即可
  • Java基础-作用域

    基本概念 在Java当中 主要的变量就是属性 成员变量 和局部变量 java中作用域的分类 全局变量 也就是属性 作用域为整个类体 局部变量 除了属性之外的其他变量 作用域为定义的代码块当中 目录 局部变量 举例 结果 局部变量没有默认值
  • Scala安装

    1 需要到官方下载window版本的Scala2 12x 注意去官方第找到Download下载 2 直接下载 第二种下载方式打开技能大赛课程里面的资料 3 双击安装文件进行安装 在安装的过程需要注意安装目录不要空格 中文和特殊符号 建议在D
  • Docker安装和Portainer图形界面安装

    文章目录 1 概述 2 docker简介 2 1 架构 2 2 优点 2 3 docker和虚拟机比较 比如vmware 3 docker安装 centos环境 3 1 卸载旧版本 没有可以不执行 3 2 设置仓库 3 3 正式安装 3 4
  • 数组练习题2

    1 题目 打印杨辉三角的前n行 注 杨辉三角的本质是它的两条斜边都是1 其余数则等于它肩上的两个数之和 如 1 11 121 1331 14641 思路 计算杨辉三角的时候1 先定义第一列的值为1 2 定义对角线上的值为1 3 根据某项值
  • 卸载 kubernetes

    kubeadm reset f modprobe r ipip lsmod rm rf kube rm rf etc kubernetes rm rf etc systemd system kubelet service d rm rf e
  • linux:真机安装centos linux(突发事件:解决卡在安装界面){寻找镜像--u启制作--引导u盘--解决卡在安装界面--安装配置}

    首先准备一个8 16 g的u盘 格式为 fat32 寻找镜像 寻找可以上阿里云或者各大镜像网站以及官网寻找 我是在阿里云找的 阿里巴巴开源镜像站 OPSX镜像站 阿里云开发者社区 aliyun com 寻找你要找的版本 我这里就选7 9版本
  • 【JAVA并发编程-黑马】第一章

    文章目录 一 创建线程的几种方式 二 查看进程的方法 三 线程运行原理 栈桢Debug 四 线程运行原理图解 4 1 类加载 4 2 启动main线程 五 线程上下文切换 Thread Context Switch 六 常用方法 6 1 r
  • 【记录11】前端项目上传至gitee仓库及相关命令

    本篇文章适用于初次使用git base来上传项目至gitee仓库的初学者 使用git base来上传项目至国内gitee 判断当前项目是否连接仓库 2022 3 29 查看当前的用户 git config user name 查看当前用户地
  • Android Genemotion模拟器一直卡在黑屏界面

    Android Genemotion模拟器一直卡在黑屏界面 解决办法 调大对应的模拟器的内存 第一步 右键你要修改的模拟器 弹出的菜单中选择 Settings 第二步 增大或者减小内存
  • MySQL必知必会 学习笔记 第九章 用正则表达式进行搜索

    正则表达式是用来匹配文本的特殊的串 它用正则表达式语言来建立 MySQL支持的正则表达式仅为正则表达式的一个很小的子集 可通过WHERE子句使用正则表达式过滤SELECT检索出的数据 检索条件列包含字符100的所有行 SELECT colu