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)
可以看出,如果包含目標(biāo)字符串,會返回目標(biāo)字符串笫一次出現(xiàn)的位置,可以根據(jù)返回值是否大于0來判斷是否包含目標(biāo)字符串。
2. strpos(string, substring):
該函數(shù)的作用是聲明子串的位置。
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函數(shù)一致。
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. 使用數(shù)組的@>操作符(不能準(zhǔn)確判斷是否包含):
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)
可以看出,數(shù)組的包含操作符判斷的時候不管順序、重復(fù),只要包含了就返回true,在真正使用的時候注意。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL?10分區(qū)表及性能測試報告小結(jié)
PostgreSQL的分區(qū)表跟先前版本一樣,也要先建立主表,然后再建立子表,使用繼承的特性,但不需要手工寫規(guī)則了,目前支持range、list分區(qū),10正式版本發(fā)布時不知會不會支持其它方法,感興趣的朋友跟隨小編一起看看吧2022-01-01基于PostgreSQL/openGauss?的分布式數(shù)據(jù)庫解決方案
ShardingSphere-Proxy?作為透明數(shù)據(jù)庫代理,用戶無需關(guān)心?Proxy?如何協(xié)調(diào)背后的數(shù)據(jù)庫。今天通過本文給大家介紹基于PostgreSQL/openGauss?的分布式數(shù)據(jù)庫解決方案,感興趣的朋友跟隨小編一起看看吧2021-12-12Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明
這篇文章主要介紹了Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07PostgreSQL中實現(xiàn)數(shù)據(jù)實時監(jiān)控和預(yù)警的步驟詳解
在 PostgreSQL 中實現(xiàn)數(shù)據(jù)的實時監(jiān)控和預(yù)警是確保數(shù)據(jù)庫性能和數(shù)據(jù)完整性的關(guān)鍵任務(wù),以下將詳細(xì)討論如何實現(xiàn)此目標(biāo),并提供相應(yīng)的解決方案和具體示例,需要的朋友可以參考下2024-07-07PostgreSQL:string_agg?多列值聚合成一列的操作示例
PostgreSQL中的STRING_AGG()函數(shù)是一個聚合函數(shù),用于連接字符串列表并在字符串之間放置分隔符,這篇文章主要介紹了PostgreSQL:string_agg多列值聚合成一列,需要的朋友可以參考下2023-08-08PGSQL查詢最近N天的數(shù)據(jù)及SQL語句實現(xiàn)替換字段內(nèi)容
PostgreSQL提供了WITH語句,允許你構(gòu)造用于查詢的輔助語句,下面這篇文章主要給大家介紹了關(guān)于PGSQL查詢最近N天的數(shù)據(jù)及SQL語句實現(xiàn)替換字段內(nèi)容的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03PostgreSQL教程(三):表的繼承和分區(qū)表詳解
這篇文章主要介紹了PostgreSQL教程(三):表的繼承和分區(qū)表詳解,本文講解了多表繼承、 繼承和權(quán)限、什么是分區(qū)表、分區(qū)表實現(xiàn)、分區(qū)和約束排除等內(nèi)容,需要的朋友可以參考下2015-05-05postgresql數(shù)據(jù)合并,多條數(shù)據(jù)合并成1條的操作
這篇文章主要介紹了postgresql數(shù)據(jù)合并,多條數(shù)據(jù)合并成1條的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02