postgresql实现模糊查询 正则表达式

因为数据库的查询操作比较单一,所以大部分的模糊查询操作都需要手动编写程序来实现。

postgresql提供有强大的正则表达式系统,可以在数据库级别实现模糊查询。

正则表达式匹配操作符:

操作符描述例子
~匹配正则表达式,大小写相关'thomas' ~ '.*thomas.*'
~*匹配正则表达式,大小写无关'thomas' ~* '.*Thomas.*'
!~不匹配正则表达式,大小写相关'thomas' !~ '.*Thomas.*'
!~*不匹配正则表达式,大小写无关'thomas' !~* '.*vadim.*'


例如:

找出数据表account中所有用户名包含baidu且不区分大小写的用户的信息。

select * from account where username ~* 'baidu';

使用正则表达式之后可以实现不区分大小写的功能,并且大大减少了sql语句的长度。

PostgreSql 模糊查询 表示任意个字符;_ 表示单个任意字符;escape 用来转义。PostgreSQL中用于模糊查询的操作符有六大类。6. 再次对 TextData1 字段添加索引。左模糊查询效率低下,一般不推荐在应用中去使用。执行下面语句可以查看三元索引生成结果。执行下面语句检查相似性。 阅读详情

相关推荐

PostgreSQL LIKE 查询优化:通配符、正则与索引技巧

在数据库日常开发中,模糊查询是高频操作,而 LIKE 是 SQL 标准中最基础的模糊匹配语法。其通配符 % 和 _ 的使用看似简单,但在实际工程中常因大小写敏感、特殊字符转义、索引失效等问题导致查询错误或性能瓶颈。尤其是 PostgreSQL 中,LIKE 的前缀匹配可利用 B-tree 索引,而 %关键词% 则依赖 pg_trgm 扩展才能高效检索。理解其底层原理,掌握 text_pattern_ops 操作符类与 GIN 索引,能有效提升报表查询和数据清洗效率。本文从通配符行为、正则表达式的边界、索引优

weixin_29207439的博客 228

pgsql (PostgresSQL) 查询的时候忽略值的大小写差异

背景 有时候我们不能忽略大小写,如密码的比对 (这一般也在Java中对比,不存在SQL中进行区分的需求) 搜索的时候忽略大小写 如何忽略大小写 pgsql/ postgresql 如何查询的时候忽略大小写? 假设有 fock5 的数据 select * from data_group where name=‘fuck5’; --能查出 select * from data_group where name=‘Fuck5’; --不能 select * from data_group wher

w8y56f的专栏 1万+

PostgreSql模糊查询sql语句

(4,‘PostgreSQL is supported powerful BRIN Indexes’,‘sdfsf双方都水电费’,‘sfsdfsdfsdfsdfsdfsdfsdf’);,(3,‘PostgreSQL is better than SQL Server’,‘ni 是猪吗’,‘666冲冲弄’),(2,‘Database Research & Development’,‘我也不知道啊’,‘谁长的帅’)(1,‘Anvesh Patel’,‘会报路径找不到’,‘中国人长的帅’)% 表示任意个字符;

cuisidong1997的博客 1575

PostgreSQL:如何进行“不区分大小写”查询

Is there any way to write case-insensitive queries in PostgreSQL, Eg I want that following 3 querie

CHCH998的博客 5732

Wireshark实战解析IEC 61850 GOOSE报文:智能变电站通信调试指南

网络协议分析是理解现代工业通信系统的基础,其核心原理在于对数据包的捕获、解码与解析。在电力自动化领域,IEC 61850标准定义了智能变电站内设备间高效、可靠的通信框架,其中GOOSE(通用面向对象变电站事件)协议因其基于以太网多播和快速重传机制,成为保护跳闸、联锁等关键信号传输的基石,其技术价值在于实现了微秒级延迟的高可靠性通信。掌握GOOSE报文的分析能力,对于现场调试、故障定位及系统验证至关重要。本文聚焦于使用Wireshark这一网络分析工具,深入解析GOOSE报文结构,涵盖从以太网帧头、协议标识到

weixin_34401479的博客 376

Redis【实战篇】---- 分布式锁-redission

重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。不可重试:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该能再次尝试获得锁。

是微风,是晚霞,是无可替代 1万+

Postgresql学习笔记之——模糊匹配LIKE、SIMILAR TO和POSIX正则表达式

1、介绍 Postgresql数据库中提供三种实现模糊匹配的方式: 1.传统的SQL的LIKE操作。 2.SQL99中SIMILAR TO操作符。 3.POSIX风格的正则表达式。 另外还有一个模式匹配函数 substring 也可供使用。 2、LIKE操作符 传统的LIKE操作符比较简单,其中百分号 **“%”代表了0个或任意个字符,而下划线“_”**代表任意一个字符: postgres=# c...

qq_32838955的博客 7379

DCM、PLL以及DLL等概念及详情

介绍DLL、PLL以及DCM的概念,总结其模块构成、工作原理、相互之间的差异与各自优势。

CLL_caicai的博客 8339

PostgreSQL 百亿数据 秒级响应 正则及模糊查询

正则匹配和模糊匹配通常是搜索引擎的特长,但是如果你使用的是 PostgreSQL 数据库照样能实现,并且性能不赖,加上分布式方案 (譬如 plproxy, pg_shard, fdw shard, pg-xc, pg-xl, greenplum),处理百亿以上数据量的正则匹配和模糊匹配效果杠杠的,同时还不失数据库固有的功能,一举多得。 物联网中有大量的数...

weixin_33893473的博客 2965

如何用SoulChat2.0快速克隆你的心理咨询师?手把手教你搭建AI数字孪生体

本文详细介绍了如何利用SoulChat2.0框架快速构建心理咨询师的AI数字孪生体。通过其核心PsyDT技术,仅需少量真实案例即可合成风格数据并微调大模型,从而低成本地创建能高度模仿特定咨询师语言风格和专业技术的AI分身,适用于预约访谈、心理教育等辅助场景,实现高效的人机协作。

julia4scientist的博客 979

图神经网络学习笔记-点云数据处理(专题七)

本教程解释了如何利用图神经网络(Graph Neural Networks,GNNs)来处理和训练点云数据。尽管点云默认情况下不具有图结构,但我们可以利用 PyG 的转换工具,将其转化为适合 PyG 所提供的全套 GNN 模型的形式。关键思想是从点云数据中创建一个,通过 GNN 的消息传递机制,从中学习有意义的局部几何结构。这些点的表示可以被用于例如点云分类或分割等任务。

351

Postgresql查询时不区分大小写

postgresql提供有强大的正则表达式系统,可以在数据库级别实现模糊查询。正则表达式匹配操作符: 操作符描述例子 ~ 匹配正则表达式,大小写相关 'thomas' ~ '.*thomas.*' ~* 匹配正则表达式,大小写无关 'thomas' ~* '.*Thomas.*' !~ 不匹配正则表达式,大小写相关 '...

weixin_30618985的博客 334

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

pgsql 筛选中文字符正则_PostgreSQL正则及模糊查询优化

1、带前缀的模糊查询 ~'^abc'可以使用btree索引优化create index idx_info on table_name(info)2、带后缀的模糊查询 ~'abc$'可以使用reverse函数btree索引create index idx_info1 on table_name(reverse(info));3、不带前后缀的模糊查询和正则表达式查询pg_trgm可以使用trgm的...

weixin_30068505的博客 1254

Mybatis面试题(基础篇)

(1)mybatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。(2)mybatis避免了几乎所有的JDBC代码(说明了mybatis底层用的就是JDBC,只不过是封装了)和手动设置参数以及获取结果集。(3)mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的pojo映射成数据库中的记录。

qq_38196449的博客 1687

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

简单的模糊查询格式

select * from t_goods <where> <if test="goodsName!=null and goodsName!=''"> or goodsName LIKE CONCAT(CONCAT('%',#{goodsName},'%')) ...

CloudLai的博客 639

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

PostgreSQL - 模糊查询

前言 like、not like在SQL中用于模糊查询,%表示任意个字符,_表示单个任意字符,如果需要在模糊查询中查询这两个通配符,需要用ESCAPE进行转义,如下: select * from table where name like '张/_小%' escape '/'; 这里表明/作为转义符,所以就可以在模糊查询中将通配符作为普通字符来搜索。另外,因为左模糊查询效率低下,一般不推荐在应用...

不积跬步,无以至千里 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PostgreSQL模糊查询 like和~差异

pg中模糊查询的功能十分强大,甚至支持前后模糊查询。我们可以通过pg自带的pg_trgm插件来进行正则表达式~和like的模糊查询,这两种方式语义是一样的。 例如这两个语句效果是相同的: select * from test where col like ‘%xxxxxx%’; select * from test where col ~ ‘xxxxxx’; 但是性能上存在一定的差异,like的性...

Focus on PostgreSQL 3618

PostgreSQL模糊查询相关学习参考

1.pg_trgm安装(1)安装btree_gin和pg_trgm# 需要先进入pg源码包中su - postgrescd contrib/pg_trgm/make && make install安装pg_trgm扩展时需要安装btree_gin才可以使用cd contrib/btree_gin/make && make install(2)创建扩展 安装的扩展默认都是在pg_catalog这个schema下面。1.索引的意义1.1索引的优点创建索引能够加快对表的查询,排序,以及唯一约束的作用。

sig321的专栏 1080

postgresql的模糊查询

postgresql的模糊查询有两种方式: - PostgreSQL的LIKE操作符是用来反对使用通配符的模式匹配的文本值。 - PostgreSQL提供有强大的正则表达式系统,可以在数据库级别实现模糊查询。 区别 LIKE运算符也可以匹配指定的字符串,但与~不同,LIKE匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回。而~在文本进行匹配,如果被匹配的字符串在文本...

借物小人的博客 2万+

「PostgreSQL」PostgreSQL模糊查询, postgres特殊符号模糊查询

在做WEB项目时, 经常会需要使用搜索功能, 而且大多数时候是需要模糊搜索, 以下将对模糊搜索进行介绍: 通常我们是这样写的: SELECT * FROM 表名 WHERE 字段 LIKE ('%' || '关键字' || '%') 或者这样写: SELECT * FROM 表名 WHERE 字段 ~* '关键字' 但是这两种是有风险的! 可能出现的问题: invalid r...

阿航的技术小站 8333

PostgreSQL笔记-模糊查询

like、not like like、not like在SQL中用于模糊查询,%表示任意个字符,_表示单个任意字符,如果需要在模糊查询中查询这两个通配符,需要用ESCAPE进行转义 escape --sql1 select remark from t_customer where remark like '%~/%' escape '~'; --result1 已售/田 已售/田 已签约/田 3.14号星星预占2400/3年 --sql2 select remark from t_customer whe

黑发少年1994的博客 1465

PostgreSQL模糊查询实战:LIKE、SIMILAR TO和正则表达式性能对比与优化技巧

本文深入对比了PostgreSQL中LIKE、SIMILAR TO和正则表达式三种模糊查询方式的性能差异,并提供了针对亿级数据的实战优化技巧。重点探讨了如何利用pg_trgm扩展、GIN/GiST索引以及自定义函数索引来大幅提升包含匹配等复杂场景的查询效率,帮助开发者解决海量数据下的模糊查询性能瓶颈。

yhn45678901的博客 718

PostgreSQL 模糊查询 与 正则匹配 性能差异与SQL优化建议

标签 PostgreSQL , 模糊查询 , 正则匹配 , like , RE , regexp match 背景 PostgreSQL通过 pg_trgm插件,可以支持正则表达式、LIKE 前后模糊查询。 (要支持中文的话,必须确保lc_collate和lc_ctype <> C) 《中文模糊查询性能优化 by PostgreSQL t...

weixin_34315189的博客 1518
上一篇: springmvc处理异常的4种方式
下一篇: postgresql 字符串转整形
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值