PostgreSQLregexp_matches替换like模糊查询的操作我就废话不多说了,⼤家还是直接看代码吧~
改前:
select * from 表名 where 字段名 like ||#{参数}||'%'
改后:
select *,regexp_matches(字段名, #{参数}) from 表名
正则匹配公司名称补充:postgresql实现模糊查询正则表达式
因为数据库的查询操作⽐较单⼀,所以⼤部分的模糊查询操作都需要⼿动编写程序来实现。
postgresql提供有强⼤的正则表达式系统,可以在数据库级别实现模糊查询。
正则表达式匹配操作符:
操作符描述例⼦
~匹配正则表达式,⼤⼩写相关'thomas' ~ '.*thomas.*'
~
*匹配正则表达式,⼤⼩写⽆关'thomas' ~* '.*Thomas.*'
!~不匹配正则表达式,⼤⼩写相关'thomas' !~ '.*Thomas.*'
!~*不匹配正则表达式,⼤⼩写⽆关'thomas' !~* '.*vadim.*'
例如:
出数据表account中所有⽤户名包含baidu且不区分⼤⼩写的⽤户的信息。
select * from account where username ~* 'baidu';
使⽤正则表达式之后可以实现不区分⼤⼩写的功能,并且⼤⼤减少了sql语句的长度。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论