1. 程式人生 > >PostgreSQL 判斷字串包含的幾種方法

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 判斷字串包含方法

判斷字串包含的幾種方法: 1. position(substring in string): postgres=# select position('aa' in 'abcd'); position ---------- 0 (1

Java List轉換為字串方法

Java List轉換為字串的幾種方法 import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; // 參考:https://blog.csdn.net/vasilis_

jQuery擷取字串方法

1.取字尾 var fileDir = $("#file").val(); var suffix = fileDir.substr(fileDir.lastIndexOf(".")); //suffix 就是字尾; 2.函式:Join() //該函式是使用您選擇的分隔符將一個數組合併為一個字串;var

asp.net分割字串方法

在編寫程式中,經常要用到分割的方法來處理一些字串。這裡總結了幾種常用的分割方法: 下面一一介紹一下: 1、最簡單最常用的方法,以一個指定的字元進行的分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split

C#_將時間轉換成字串方法

//獲取當前系統時間 DateTime dt = System.DateTime.Now; //將系統時間轉換成字串 string strTime

C語言從stdin讀取一行字串方法

C語言從stdin讀取一行字串的幾種方法 gets gets函式的標頭檔案是<stdio.h>,原型如下: char *gets(char *s); gets從stdin中讀入一行內容到s指定的buffer中,當遇到換行符或EOF時讀取結束。讀取成功時,返

C++中輸入字串方法

轉自http://gwyan.blog.163.com/blog/static/213337092201361734257744/C++中幾個輸入函式的用法和區別(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))

Python 3 格式化字串方法

%s和%d,%s是用來給字串佔位置,%d是給數字佔位置,簡單解釋下: a = 'this is %s %s' % ('an','apple') 程式輸出的結果就是:this is an apple。很容易理解,第一個%s的值是用後面括號中第一個字串替換的

判斷素數的方法的總結

素數,又稱質數,定義是:除了1和它本身以外不再有其他的除數整除。 方法一 按照定義,從2到n-1判斷有沒有能整除n的數。如果有,則不是素數,否則,是素數 bool is_prime(int n){ if (n < 2){

Shell判斷字串包含關係的方法小結

用Shell指令碼的編寫中,常用到字串包含關係的判斷。 利用grep查詢 strA="long string" strB="string" result=$(echo $strA | grep "${strB}") if [[ "$resu

linux 命令列分割字串方法

使用xargs echo '[email protected]@33' | xargs -d '@' -n 1 echo | sed '$d' 使用awk echo '[emai

CString 擷取部分字串方法

m_csFileName = csStr.Right(csStr.GetLength()-csStr.ReverseFind('\\')-1); 檔案xxxx.dll去掉後面的.dll 方法1、 char str[] = "xxxx.dll" char*p; p=strrc

【轉】Shell判斷字串包含關係的方法

下面是直接copy的內容: (本來是不打算copy的,但是每次用到或看的時候都要跳轉,感覺挺麻煩的。就直接copy了。) 方法一:利用grep查詢 1 strA="long string" 2 strB="string" 3 result=$(echo $

Python判斷一個字串是否包含子串的方法

1.使用成員操作符 in >>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >

Mysql字串欄位判斷是否包含某個字串的2方法

原文連結: 方法二: 利用mysql 字串函式 find_in_set(); 複製程式碼程式碼如下: SELECT * FROM users WHERE find_in_set('[email protected]', emails);    這樣

python判斷一個字串是否為另一字串的子串的方法

字串型別是Python裡面最常見的型別。在處理字串的時候經常會用到string模組,string模組的方法是在Python1.6裡面新增進來的。本文中主要以string模組的方法來判斷一個字串是否為另一字串的子串。 (一)首先介紹一種最簡單的方法:成員操作 in ss=r

Java中判斷字串是否為數字的方法

原文地址:http://blog.csdn.net/u013066244/article/details/53197756 用JAVA自帶的函式 public static boolean isNumericZidai(String str) {

java中判斷字串是否為數字的方法方法

java中判斷字串是否為數字的方法: 1.用JAVA自帶的函式 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.

Mysql字串欄位判斷是否包含某個字串的3方法

方法一: SELECT * FROM users WHERE emails like "%[email protected]%"; 方法二: 利用mysql 字串函式 find_in_set(); SELECT * FROM users WHERE fi

判斷JS數據類型的方法

object sta 無效 追溯 是否 執行 都是 undefine 代碼 原文轉自http://www.cnblogs.com/onepixel/p/5126046.html! 說到數據類型,我們先說一下JavaScript 中常見的幾種數據類型: 基本類型:string