首页 > 数据库 >PostgreSQL - 模糊查询

PostgreSQL - 模糊查询

时间:2023-02-02 11:32:10浏览次数:71  
标签:PostgreSQL like 模糊 ilike 查询 大小写 匹配


前言

like、not like在SQL中用于模糊查询,​​%​​​表示任意个字符,​​_​​​表示单个任意字符,如果需要在模糊查询中查询这两个通配符,需要用​​ESCAPE​​进行转义,如下:

select * from table where name like '张/_小%' escape '/';

这里表明​​/​​作为转义符,所以就可以在模糊查询中将通配符作为普通字符来搜索。另外,因为左模糊查询效率低下,一般不推荐在应用中去使用。

除了以上通用的like和not like,在PostgreSQL中还有特殊的操作符用于模糊查询。

​ilike​​​和​​not ilike​

​ilike​​​表示在模糊匹配字符串时不区分大小写,​​i​​即是ignore的意思。

​not ilike​​表示不模糊匹配字符串且不区分大小写。

​~​​​和​​~*​​​,​​!~​​​和​​!~*​

​~​​表示匹配正则表达式,且区分大小写。

​~*​​表示匹配正则表达式,且不区分大小写。

可以通过这两个操作符来实现like和ilike一样的效果,如下:

1.匹配以“张”开头的字符串
select * from table where name ~ '^张';

2.匹配以“小”结尾的字符串
select * from table where name ~ '小$';

其实这里的^和$就是正则表达式里的用法。

​!~​​​是​​~​​的否定用法,表示不匹配正则表达式,且区分大小写。

​!~*​​​是​​~*​​的否定用法,表示不匹配正则表达式,且不区分大小写。

​~~​​​和​​~~*​​​,​​!~~​​​和​​!~~*​

​~~​​​等效于like,​​~~*​​等效于ilike。

​!~~​​​等效于not like,​​!~~*​​等效于not ilike。

参考链接


标签:PostgreSQL,like,模糊,ilike,查询,大小写,匹配
From: https://blog.51cto.com/u_15951177/6033433

相关文章

  • PostgreSQL学习笔记-7.基础知识:子查询、自增、PRIVILEGES 权限
    子查询子查询或称为内部查询、嵌套查询,指的是在PostgreSQL查询中的WHERE子句中嵌入查询语句。一个SELECT语句的查询结果能够作为另一个语句的输入值。子查询可以与......
  • 案例列表查询分析与列表查询代码实现
    列表查询分析:  代码实现:配置文件driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql:///db2username=rootpassword=root#初始化连接数量initialSize......
  • 图片模糊怎么变清晰?图片模糊变清晰方法分享!​
    图片模糊怎么变清晰?很多小伙伴在拍摄照片的时候,因为手抖或者是因为摄像头没擦干净,导致图片非常的模糊,不清晰,那么只能删除了,其实小编觉得还有救!最近小编发现了一个非常好用的......
  • 《SQL基础》08. 多表查询
    目录多表查询多表关系一对多多对多一对一多表查询概述分类内连接外连接自连接联合查询子查询分类标量子查询列子查询行子查询表子查询案例多表查询多表关系项目开发中,......
  • 携程SQL上线流程优化,如何从源头扼杀慢查询?
    一、背景 慢查询指的是数据库中查询时间超过了指定的阈值的SQL,这类SQL通常伴随着执行时间长、服务器资源占用高、业务响应慢等负面影响。随着携程酒店业务的......
  • 编写 预留单查询报表 遇到的问题
    1.写完代码运行的时候报错了,前面输查询条件的那个页面没有问题,展示的时候出问题了,错误信息是:运行时错误      GETWA_NOT_ASSIGNED上网查了之后,说是内表结......
  • PostgreSQL Create Index Concurrently
     CREATE INDEX CONCURRENTLY idx_kx_kq_storeinandout_time_status   on  public.kx_kq_storeinandout  USING btree(signintime,platstatus); createUNIQ......
  • PostgreSQL:标识符( Identifier)构成规则探究
    PostgreSQL14.0--- 疑问数据库、schema、table、字段、视图等的名称有什么规范呢?使用过程中,可以用字母开头,还可以有下划线,更准确的规则是什么呢?这些名称的长度有......
  • 查询达梦数据库所有表的各种约束和索引
    查询DM数据库所有表的各种约束和索引--查询主键SELECTa.OWNERas"模式名",a.TABLE_NAMEas"表名",b.COLUMN_NAMEas"列名",a.CONSTRAINT_NAMEas"约束名"fromDBA......
  • JPA 分页 条件 查询
      publicPage<ReportTask>getListByPage(ReportTaskQueryDtoreportTaskQueryDto){finalIntegeroffset=reportTaskQueryDto.getOffset();fi......