栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

postgreSql:判断a 是否 在 a,ab,c中,且 a只匹配a, 匹配ab的话不算

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

postgreSql:判断a 是否 在 a,ab,c中,且 a只匹配a, 匹配ab的话不算

[TOC]

今天分享下几个postgreSql的函数

相关主题: 判断a 是否 在 a,ab,c中,且 a只匹配a, 匹配ab的话不算

1,like 一般和 % 用于模糊查询

    select 'a,ab,c'  like '%a%'

结果为:true ,正常

    select 'ab,c'  like '%a%'

结果也为:true ,此次a匹配的是ab上的a,这时就需要注意下

如果两边都加上逗号,就可以了

    select ',a,ab,c,'  like '%,a,%'

结果为:true

    select ',ab,c,'  like '%,a,%'

结果为:false

2,position 函数,返回位置,找不到返回0

select  position('a' in 'a,ab,c')

返回结果:1
同样,这个函数也和like 有同样的问题,也可以用两边都加逗号的方法解决

同时,由于position返回的是下标位置,所以可以用来固定排序,
例如

select 
 *
from   表名
order by   position( 列名 in 'a,ab,c')  asc

3,any(regexp_split_to_array('a,b,c',','))

其实,这是2个函数,

any() 里面是放数组,用于结果中的某个值,

regexp_split_to_array 是把字符串切分成数组

regexp_split_to_array('a,b,c',',')是把a,b,c以逗号为分割符分割成数组

SELECT  'a' = ANY ( regexp_split_to_array( 'a,b,c', ',' ) )

运行结果为:true

SELECT  'a' = ANY ( regexp_split_to_array( 'ab,c', ',' ) )

运行结果为:false
sql的意思 就是 分割成数组后,再用 any 进行判断该数组是否包含对应的a

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号