2017-04-21 81 views
0

是否有可能在PostgreSQL的9.4(PLPGSQL)來檢測,如果一個字符串包含特定字符串,包括通配符和獲得通配符,例:檢測特定的字符串,包括通配符和PLPGSQL隔離通配符

IF NEW.my_string CONTAINS 'patternXYZ' THEN 
    NEW.my_values := getXYZ(my_string) 
END IF; 

哪會導致NEW.my_values包含XYZ(可以是字符串中的任何內容,但只包含3個字符)。

回答

-1
SELECT 
    CASE 
    WHEN (NEW.my_string like '%patternXYZ%') 
     THEN substring(NEW.my_string from '+pattern+') 
     ELSE '00' 
    END AS data 
FROM my_table; 

模式應該是查詢的參數。

+0

XYZ應該是通配符,這可以是任何東西。 –

+0

所以我想這會工作時(NEW.my_string像'%pattern%'),但然後我需要模式後的3個字符。 –

+0

我試過類似select'SUBSTRING'('patternXYZ'from'%pattern#「%#」。%'for'#');但它不能快速工作,因爲我得到的字符多於XYZ。 –