发布网友 发布时间:2022-04-08 20:54
共2个回答
懂视网 时间:2022-04-09 01:15
postgresql提供有强大的正则表达式系统,可以在数据库级别实现模糊查询。
正则表达式匹配操作符:
操作符 | 描述 | 例子 |
---|---|---|
~ | 匹配正则表达式,大小写相关 | ‘thomas‘ ~ ‘.*thomas.*‘ |
~* | 匹配正则表达式,大小写无关 | ‘thomas‘ ~* ‘.*Thomas.*‘ |
!~ | 不匹配正则表达式,大小写相关 | ‘thomas‘ !~ ‘.*Thomas.*‘ |
!~* | 不匹配正则表达式,大小写无关 | ‘thomas‘ !~* ‘.*vadim.*‘ |
例如:
找出数据表account中所有用户名包含baidu且不区分大小写的用户的信息。
select * from account where username ~* ‘baidu‘;
使用正则表达式之后可以实现不区分大小写的功能,并且大大减少了sql语句的长度。
摘自:http://blog.163.com/clevertanglei900@126/blog/static/1113522592010102215419516/
Postgresql查询时不区分大小写
标签:
热心网友 时间:2022-04-08 22:23
pgadmin4设置不区分大小写的方法是:自定义collation支持不区分大小写的排序,但是需要注意在编译数据库的时候加上 —with-icu才可以,否则会出现报错。
如果出现目前collate不支持=操作不区分大小写,目前需要citext插件。并且默认情况PostgreSQL会将列名和表名全部转换为小写状态。
我们创建表person,其中包含name列。然后插入一条记录。执行SELECT查询时,使用列名Name和表名Person而不是name和person,发现仍然可以正常获取刚刚插入表person中的记录。
pgadmin4删除操作是:
当创建表或者写SQL查询语句时,建议避免使用双引号。补充:PostgreSQL大小写不敏感排序,pg12开始支持不区分大小写,或者区分大小写的排序的collate。
其中两个关键参数:
PROVIDER:指定用于与此排序规则相关的区域服务的提供程序。可能的值是: icu、libc。 默认 是libc。但若要设置大小写不敏感,目前只支持icu。
DETERMINISTIC:设置成not deterministic表示大小写不敏感。