PostGreSql 判断字符串中是否有中文的案例

 更新时间:2021年02月01日 15:24:12   作者:Darren_tan  
这篇文章主要介绍了PostGreSql 判断字符串中是否有中文的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧~

实例

imos=# select 'hello' ~ '[\u2e80-\ua4cf]|[\uf900-\ufaff]|[\ufe30-\ufe4f]';
 ?column?
----------
 f
(1 row)
imos=#
imos=# select 'hello中国' ~ '[\u2e80-\ua4cf]|[\uf900-\ufaff]|[\ufe30-\ufe4f]';
 ?column?
----------
 t
(1 row)

补充:PostgreSQL 判断字符串包含的几种方法

判断字符串包含的几种方法:

1. position(substring in string):

postgres=# select position('aa' in 'abcd');
 position 
----------
 0
(1 row)
postgres=# select position('ab' in 'abcd');
 position 
----------
 1
(1 row)
postgres=# select position('ab' in 'abcdab');
 position 
----------
 1
(1 row)

可以看出,如果包含目标字符串,会返回目标字符串笫一次出现的位置,可以根据返回值是否大于0来判断是否包含目标字符串。

2. strpos(string, substring):

该函数的作用是声明子串的位置。

postgres=# select strpos('abcd','aa');
 strpos 
--------
 0
(1 row)
postgres=# select strpos('abcd','ab');
 strpos 
--------
 1
(1 row)
postgres=# select strpos('abcdab','ab');
 strpos 
--------
 1
(1 row)

作用与position函数一致。

3. 使用正则表达式:

postgres=# select 'abcd' ~ 'aa';
 ?column? 
----------
 f
(1 row)
postgres=# select 'abcd' ~ 'ab';
 ?column? 
----------
 t
(1 row)
postgres=# select 'abcdab' ~ 'ab';
 ?column? 
----------
 t
(1 row)

4. 使用数组的@>操作符(不能准确判断是否包含):

postgres=# select regexp_split_to_array('abcd','') @> array['b','e'];
 ?column? 
----------
 f
(1 row)
postgres=# select regexp_split_to_array('abcd','') @> array['a','b'];
 ?column? 
----------
 t
(1 row)

注意下面这些例子:

postgres=# select regexp_split_to_array('abcd','') @> array['a','a'];
 ?column? 
----------
 t
(1 row)
postgres=# select regexp_split_to_array('abcd','') @> array['a','c'];
 ?column? 
----------
 t
(1 row)
postgres=# select regexp_split_to_array('abcd','') @> array['a','c','a','c'];
 ?column? 
----------
 t
(1 row)

可以看出,数组的包含操作符判断的时候不管顺序、重复,只要包含了就返回true,在真正使用的时候注意。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • PostgreSQL 10分区表及性能测试报告小结

    PostgreSQL 10分区表及性能测试报告小结

    PostgreSQL的分区表跟先前版本一样,也要先建立主表,然后再建立子表,使用继承的特性,但不需要手工写规则了,目前支持range、list分区,10正式版本发布时不知会不会支持其它方法,感兴趣的朋友跟随小编一起看看吧
    2022-01-01
  • PostgreSQL 慢查询SQL跟踪操作

    PostgreSQL 慢查询SQL跟踪操作

    这篇文章主要介绍了PostgreSQL 慢查询SQL跟踪操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 基于PostgreSQL/openGauss 的分布式数据库解决方案

    基于PostgreSQL/openGauss 的分布式数据库解决方案

    ShardingSphere-Proxy 作为透明数据库代理,用户无需关心 Proxy 如何协调背后的数据库。今天通过本文给大家介绍基于PostgreSQL/openGauss 的分布式数据库解决方案,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • Postgresql数据库character varying和character的区别说明

    Postgresql数据库character varying和character的区别说明

    这篇文章主要介绍了Postgresql数据库character varying和character的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 对Postgresql中的json和array使用介绍

    对Postgresql中的json和array使用介绍

    这篇文章主要介绍了对Postgresql中的json和array使用介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL中实现数据实时监控和预警的步骤详解

    PostgreSQL中实现数据实时监控和预警的步骤详解

    在 PostgreSQL 中实现数据的实时监控和预警是确保数据库性能和数据完整性的关键任务,以下将详细讨论如何实现此目标,并提供相应的解决方案和具体示例,需要的朋友可以参考下
    2024-07-07
  • PostgreSQL:string_agg 多列值聚合成一列的操作示例

    PostgreSQL:string_agg 多列值聚合成一列的操作示例

    PostgreSQL中的STRING_AGG()函数是一个聚合函数,用于连接字符串列表并在字符串之间放置分隔符,这篇文章主要介绍了PostgreSQL:string_agg多列值聚合成一列,需要的朋友可以参考下
    2023-08-08
  • PGSQL查询最近N天的数据及SQL语句实现替换字段内容

    PGSQL查询最近N天的数据及SQL语句实现替换字段内容

    PostgreSQL提供了WITH语句,允许你构造用于查询的辅助语句,下面这篇文章主要给大家介绍了关于PGSQL查询最近N天的数据及SQL语句实现替换字段内容的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • PostgreSQL教程(三):表的继承和分区表详解

    PostgreSQL教程(三):表的继承和分区表详解

    这篇文章主要介绍了PostgreSQL教程(三):表的继承和分区表详解,本文讲解了多表继承、 继承和权限、什么是分区表、分区表实现、分区和约束排除等内容,需要的朋友可以参考下
    2015-05-05
  • postgresql数据合并,多条数据合并成1条的操作

    postgresql数据合并,多条数据合并成1条的操作

    这篇文章主要介绍了postgresql数据合并,多条数据合并成1条的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论