PostgreSQL(三) 模式匹配(正则和LIKE)

news/2024/7/9 21:52:18 标签: postgresql, 数据库, LIKE, SIMILAR TO

1.POSIX正则

1.1.使用规则

符号说明
~匹配正则, 区分大小写
~*匹配正则, 不区分大小写
!~不匹配正则, 区分大小写
!~*不匹配正则, 不区分大小写

1.2.字符匹配列表

符号说明
^以特定字符或字符串开头
.匹配任何单个字符
*匹配0个和多个字符串
+匹配前面的字符1次和多次
<字符串>匹配包含知道的字符串和文本
[字符串list]匹配字符集合中的任何一个字符
[^]匹配不在括号中的任何符号
字符串{n,}匹配前面的字符串至少n次
字符串{n,m}匹配前面的字符串至少n次,至多m次

1.3.实例

1.3.1.查询以字符或字符串开头的记录

select * from table_name where name ~ '^A';

1.3.2.查询任意字符

select * from table_name where name ~ 'A.C';

1.3.3.匹配多个字符

select * from table_name where name ~ '^AB*';//以A开头,后面任意位置出现B多次或者0次
select * from table_name where name ~ '^AB+';//A开头,字母B至少出现一次

1.3.4.匹配多个字符中的一个

select * from table_name where name ~ '[AB]';

1.3.5.匹配非指定字符

select * from table_name where name !~ '[A-C1-6]';//匹配包含A到C和1到6的字符

1.3.6.匹配指定次数

select * from table_name where name ~ 'AB{2,7}';//AB出现2次到7次

LIKE_48">2. LIKE

2.1.使用规则

符号说明
%匹配任何零个或多个
_单个匹配符
LIKE区分大小写的匹配
ILIKE匹配, 不区分大小写
NOT LIKE不匹配, 区分大小写
NOT ILIKE不匹配, 不区分大小写

说明:
使用反斜杠进行转义%, 如:\%来匹配字符中的%.
也可以不使用反斜杠作为转义, 自定义转义符号, 如:

select * from table_name where name like 'ab#%%' escape '#';// 能够匹配如: ab%ccd

2.2.实例

select * from table_name where name like 'a%c'; // abc, aghjklc

3. SIMILAR TO 正则表达式

3.1.使用规则

符号说明
%匹配任何零个或多个
_单个匹配符
|表示选择两个候选项之一,两个字符匹配其中之一就可以。类似“或”。
*表示重复前面的指定的项0次或多次。
+表示重复前面的指定项1次或多次。
?表示重复前面的指定项0次或1次。
{m}表示重复前面的项m次。
{m,}表示重复前面的项m次或更多次。
{m,n}表示重复前面的项至少m次,不超过n次。
()可以作为项目分组到一个独立的逻辑项中。
[…]声明一个字符类,就像POSIX正则表达式。

3.2.实例

select * from table_name where name similar to 'AB%';// ABC
select * from table_name where name similar to '%(321|abc)%';// 321ABC, abc345
select * from table_name where name similar to '%(abc|efg)';//123abc, 321efg

http://www.niftyadmin.cn/n/229175.html

相关文章

【文件恢复】——linux文件系统

文章目录1.inode & block1.1 inode的内容1.2 inode的号码1.3 inode的大小1.4 inode的特殊作用1.5 实例&#xff1a;模拟inode号被占满1.6 文件存储小结2. 链接文件3.文件恢复3.1 EXT类型文件恢复3.1.1 EXT类型文件恢复步骤3.2 XFS类型文件恢复3.2.1 xfsdump使用限制3.2.2 X…

Docker本地推送到hub,以及上传时遇到的问题解决

1.在本地创建一个 Dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.baidu.com"]2.在本地构建 Docker 镜像 在创建本地docker镜像的时候[TAG] .和[TAG] /PATH/TO 需要注意dockerfile文件…

如何清理电脑缓存,分享4个简单方法!

案例&#xff1a;如何清理电脑缓存 【朋友们&#xff01;我感觉我电脑的内存已经严重不足了&#xff0c;想清理下电脑的缓存释放空间&#xff0c;却不知如何清理&#xff0c;大家有什么好的方法吗&#xff1f;】 经常使用电脑的朋友可能都会发现&#xff0c;好像我们没下载什…

在proteus中仿真arduino实现矩阵键盘程序

矩阵键盘是可以解决我们端口缺乏的问题&#xff0c;当然&#xff0c;如果我们使用芯片来实现矩阵键盘的输入端口缺乏的问题将更加划算了&#xff0c;本文暂时不使用芯片来解决问题&#xff0c;而使用纯朴的8根线来实现矩阵键盘&#xff0c;目的是使初学者掌握原理。想了解使用芯…

通过1个IP地址同时采集2台西门子S7200 Smart的数据

一、应用场景 制药厂的颗粒包装机&#xff0c;控制系统由2台西门子S7200 Smart的PLC和1台昆仑通泰MCGS的触摸屏组成。现在MES管理系统&#xff0c;需要采集设备的数据&#xff0c;只提供一个IP地址&#xff0c;且IP地址和原系统不在同一个网络段内。 二、原系统架构 2台西门子S…

【数据结构】顺序表(上)

所属专栏&#xff1a;初始数据结构 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyang785> 感谢大家的支持&#xff0c;您的点赞和关注是对我最大的支持&#xff01;&#xff01;&#xff01; 博主也会更加的努力&#xff0c;创作出更优质的博文&#xff01;&#x…

线性分类算法:逻辑回归和Softmax回归

目录&#xff08;一 &#xff09;逻辑回归1.1 逻辑回归概述&#xff1a;1.2 逻辑回归的作用与Sigmoid 函数&#xff1a;1.2.1 Sigmoid 函数作用1.3 指数族分布1.4 逻辑回归的损失函数1.5逻辑回归如何求解得到最优解模型方法1.6 逻辑回归鸢尾花分类1.7 逻辑回归做多分类&#xf…

Java设计模式之桥接模式

目录 1、什么是桥接模式 2、桥接模式和组合模式的区别 3、桥接模式在Java中的应用场景 1、什么是桥接模式 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将一个类或一组类的抽象与实现分离&#xff0c;以便它们可以…