[TOC]
今天分享下几个postgreSql的函数<br>
相关主题: 判断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,这时就需要注意下<br>
如果两边都加上逗号,就可以了
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',',')) <br>
其实,这是2个函数,<br>
any() 里面是放数组,用于结果中的某个值,<br>
regexp_split_to_array 是把字符串切分成数组<br>
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
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦